automation_model 1.0.477-dev → 1.0.477

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/README.md +133 -0
  2. package/lib/analyze_helper.js.map +1 -1
  3. package/lib/api.d.ts +43 -2
  4. package/lib/api.js +240 -47
  5. package/lib/api.js.map +1 -1
  6. package/lib/auto_page.d.ts +7 -2
  7. package/lib/auto_page.js +283 -29
  8. package/lib/auto_page.js.map +1 -1
  9. package/lib/browser_manager.d.ts +6 -3
  10. package/lib/browser_manager.js +194 -48
  11. package/lib/browser_manager.js.map +1 -1
  12. package/lib/bruno.d.ts +2 -0
  13. package/lib/bruno.js +381 -0
  14. package/lib/bruno.js.map +1 -0
  15. package/lib/check_performance.d.ts +1 -0
  16. package/lib/check_performance.js +57 -0
  17. package/lib/check_performance.js.map +1 -0
  18. package/lib/command_common.d.ts +5 -4
  19. package/lib/command_common.js +133 -21
  20. package/lib/command_common.js.map +1 -1
  21. package/lib/date_time.js.map +1 -1
  22. package/lib/drawRect.js.map +1 -1
  23. package/lib/environment.d.ts +1 -0
  24. package/lib/environment.js +6 -3
  25. package/lib/environment.js.map +1 -1
  26. package/lib/error-messages.d.ts +6 -0
  27. package/lib/error-messages.js +206 -0
  28. package/lib/error-messages.js.map +1 -0
  29. package/lib/file_checker.d.ts +1 -0
  30. package/lib/file_checker.js +172 -0
  31. package/lib/file_checker.js.map +1 -0
  32. package/lib/find_function.js.map +1 -1
  33. package/lib/generation_scripts.d.ts +4 -0
  34. package/lib/generation_scripts.js +2 -0
  35. package/lib/generation_scripts.js.map +1 -0
  36. package/lib/index.d.ts +3 -0
  37. package/lib/index.js +4 -0
  38. package/lib/index.js.map +1 -1
  39. package/lib/init_browser.d.ts +4 -3
  40. package/lib/init_browser.js +160 -83
  41. package/lib/init_browser.js.map +1 -1
  42. package/lib/locate_element.js +16 -14
  43. package/lib/locate_element.js.map +1 -1
  44. package/lib/locator.d.ts +37 -0
  45. package/lib/locator.js +172 -0
  46. package/lib/locator.js.map +1 -1
  47. package/lib/locator_log.d.ts +26 -0
  48. package/lib/locator_log.js +69 -0
  49. package/lib/locator_log.js.map +1 -0
  50. package/lib/network.d.ts +5 -0
  51. package/lib/network.js +494 -0
  52. package/lib/network.js.map +1 -0
  53. package/lib/route.d.ts +83 -0
  54. package/lib/route.js +682 -0
  55. package/lib/route.js.map +1 -0
  56. package/lib/scripts/axe.mini.js +24005 -0
  57. package/lib/snapshot_validation.d.ts +37 -0
  58. package/lib/snapshot_validation.js +357 -0
  59. package/lib/snapshot_validation.js.map +1 -0
  60. package/lib/stable_browser.d.ts +146 -47
  61. package/lib/stable_browser.js +2565 -865
  62. package/lib/stable_browser.js.map +1 -1
  63. package/lib/table.d.ts +15 -0
  64. package/lib/table.js +257 -0
  65. package/lib/table.js.map +1 -0
  66. package/lib/table_analyze.js.map +1 -1
  67. package/lib/table_helper.d.ts +19 -0
  68. package/lib/table_helper.js +130 -0
  69. package/lib/table_helper.js.map +1 -0
  70. package/lib/test_context.d.ts +6 -0
  71. package/lib/test_context.js +16 -12
  72. package/lib/test_context.js.map +1 -1
  73. package/lib/utils.d.ts +38 -2
  74. package/lib/utils.js +735 -13
  75. package/lib/utils.js.map +1 -1
  76. package/package.json +33 -13
  77. package/lib/axe/axe.mini.js +0 -12
package/README.md ADDED
@@ -0,0 +1,133 @@
1
+ # Stable API Description
2
+
3
+ This API is built on top of Playwright to control browsers. The most common commands are:
4
+
5
+ - `click`
6
+ - `clickType`
7
+ - `verifyTextExistInPage`
8
+
9
+ ## Parameters
10
+
11
+ - **selectors** - An object that can contain the name of the element as well as multiple selectors (CSS, ARIA, etc.) used to locate the element.
12
+ - **world** - Used as part of `cucumber-js`.
13
+ - **\_params** - An object that includes the original function parameters (used in dynamic selectors).
14
+ - **options** - All actions playwright options are supported: "button", "clickCount", "delay", "modifiers", "force", "position", "trial", "timeout".
15
+ - **climb** - After finding the element using the selectors, will climb the DOM.
16
+
17
+ Unless stated otherwise, the APIs will return an information object and will throw an error in case of failure.
18
+
19
+ ## Function List
20
+
21
+ ```javascript
22
+ async goto(url: string, world);
23
+ /* Use AI to identify an element and click on it */
24
+ async simpleClick(elementDescription, _params, options = {}, world);
25
+ async simpleClickType(elementDescription, value, _params, options = {}, world);
26
+ async click(selectors, _params, options = {}, world);
27
+ /* Return true/false */
28
+ async waitForElement(selectors, _params, options = {}, world);
29
+ async setCheck(selectors, checked = true, _params, options = {}, world);
30
+ async hover(selectors, _params, options = {}, world);
31
+ async selectOption(selectors, values, _params, options = {}, world);
32
+ async type(_value, _params, options = {}, world);
33
+ async setDateTime(selectors, value, format, enter = false, _params, options = {}, world);
34
+ /* Use to populate text fields */
35
+ async clickType(selectors, _value, enter = false, _params, options = {}, world);
36
+ /* Return the text */
37
+ async _getText(selectors, climb, _params, options = {}, info, world);
38
+ async containsText(selectors, text, climb, _params, options = {}, world);
39
+ setTestData(testData, world);
40
+ getTestData(world);
41
+ async verifyElementExistInPage(selectors, _params, options = {}, world);
42
+ async extractAttribute(selectors, attribute, variable, _params, options = {}, world);
43
+ async verifyAttribute(selectors, attribute, value, _params, options = {}, world);
44
+ async verifyPagePath(pathPart, options = {}, world);
45
+ async verifyTextExistInPage(text, options = {}, world);
46
+ async waitForTextToDisappear(text, options = {}, world);
47
+ async verifyTextRelatedToText(textAnchor, climb, textToVerify, options = {}, world);
48
+ async visualVerification(text, options = {}, world);
49
+ async waitForPageLoad(options = {}, world);
50
+ async closePage(options = {}, world);
51
+ saveTestDataAsGlobal(options, world);
52
+ async setViewportSize(width, height, options = {}, world);
53
+ async reloadPage(options = {}, world);
54
+ async conditionalWait(selectors, condition, timeout = 1000, _params = null, options = {}, world = null);
55
+ /* Return the ARIA snapshot as string */
56
+ async getAriaSnapshot();
57
+ ```
58
+
59
+ ## Code Use Cases
60
+
61
+ ### Original Function
62
+
63
+ ```javascript
64
+ async function login_with_user_and_password(_username, _password) {
65
+ const _params = { _username, _password };
66
+ // Fill Username textbox with "_username"
67
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
68
+ // Fill Password textbox with "_password"
69
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
70
+ // Click on Login button
71
+ await context.web.click(elements["button_login"], _params, null, this);
72
+ }
73
+ ```
74
+
75
+ ### Example 1: Continue execution if step fails
76
+
77
+ ```javascript
78
+ async function login_with_user_and_password(_username, _password) {
79
+ const _params = { _username, _password };
80
+ try {
81
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
82
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
83
+ await context.web.click(elements["button_login"], _params, null, this);
84
+ } catch (error) {}
85
+ }
86
+ ```
87
+
88
+ ### Example 2: Perform action only if "textbox_username" is found
89
+
90
+ ```javascript
91
+ async function login_with_user_and_password(_username, _password) {
92
+ const _params = { _username, _password };
93
+ if (await context.web.waitForElement(elements["textbox_username"], _params, { timeout: 4000 }, this)) {
94
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
95
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
96
+ await context.web.click(elements["button_login"], _params, null, this);
97
+ }
98
+ }
99
+ ```
100
+
101
+ ### Example 3: Retry step if it fails
102
+
103
+ ```javascript
104
+ async function login_with_user_and_password(_username, _password) {
105
+ const _params = { _username, _password };
106
+ const maxRetry = 2;
107
+ for (let i = 0; i < maxRetry; i++) {
108
+ try {
109
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, null, this);
110
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, null, this);
111
+ await context.web.click(elements["button_login"], _params, null, this);
112
+ break;
113
+ } catch (error) {
114
+ if (i === maxRetry - 1) {
115
+ throw error;
116
+ }
117
+ }
118
+ }
119
+ }
120
+ ```
121
+
122
+ ### Example 4: Set click timeout to 2 minutes
123
+
124
+ ```javascript
125
+ async function login_with_user_and_password(_username, _password) {
126
+ const _params = { _username, _password };
127
+ await context.web.clickType(elements["textbox_username"], _username, false, _params, { timeout: 120000 }, this);
128
+ await context.web.clickType(elements["textbox_password"], _password, false, _params, { timeout: 120000 }, this);
129
+ await context.web.click(elements["button_login"], _params, { timeout: 120000 }, this);
130
+ }
131
+ ```
132
+
133
+ To use the playwright page object directly, use: context.web.page
@@ -1 +1 @@
1
- {"version":3,"file":"analyze_helper.js","sourceRoot":"","sources":["../../src/analyze_helper.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,EAAE;IAClD,0BAA0B;IAC1B,aAAa;IACb,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,SAAS;IACT,cAAc;IAEd,0EAA0E;IAC1E,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,IAAI,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;QAC3C,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACnC;SAAM,IAAI,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE;QAClD,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAClC;SAAM,IAAI,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE;QACpD,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAClC;SAAM;QACL,IAAI,OAAO,GAAG,+BAA+B,CAAC;QAC9C,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACf,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;SACjB;aAAM;YACL,IAAI,OAAO,GAAG,sBAAsB,CAAC;YACrC,IAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE;gBACT,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;aACnD;SACF;KACF;IACD,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;QAClB,OAAO,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;KAC7C;IACD,oCAAoC;IACpC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE;QACxB,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,KAAK,GAAG,GAAG,CAAC;QACZ,GAAG,GAAG,IAAI,CAAC;KACZ;IACD,IAAI,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,IAAI,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,IAAI,IAAI,EAAE;QACR,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC;QAClD,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;KAClD;SAAM;QACL,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,EAAE,CAAC,CAAC;QAC1C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;KAC1C;IACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACpD,gEAAgE;IAChE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;QACpC,OAAO,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;KACjD;IACD,wCAAwC;IACxC,YAAY;IACZ,eAAe;IACf,UAAU;IACV,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,WAAW;IACX,cAAc;IACd,+BAA+B;IAC/B,IAAI,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,2BAA2B;IAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,0CAA0C;IAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;QACtG,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;KACvB;IACD,8DAA8D;IAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACjD;KACF;IACD,6BAA6B;IAC7B,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,OAAO,EAAE;QACX,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;KAC3C;IACD,qEAAqE;IACrE,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAC3C,IAAI,OAAO,KAAK,CAAC,EAAE;YACjB,cAAc,GAAG,GAAG,GAAG,cAAc,CAAC;YACtC,YAAY,GAAG,GAAG,GAAG,YAAY,CAAC;YAClC,OAAO,GAAG,CAAC,CAAC;SACb;QACD,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;QAC5C,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;QACxC,OAAO,EAAE,CAAC;KACX;IACD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,IAAI,OAAO,EAAE;QACX,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,OAAO,EAAE,CAAC,CAAC;QAClD,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC;KACjD;IACD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AACpG,MAAM,UAAU,GAAG;IACjB,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,SAAiB,EAAE,EAAE;IAC9C,IAAI,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;KAC5C;IACD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;KACpC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"analyze_helper.js","sourceRoot":"","sources":["../../src/analyze_helper.ts"],"names":[],"mappings":"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"}
package/lib/api.d.ts CHANGED
@@ -1,5 +1,46 @@
1
- /// <reference types="node" />
2
1
  import { AxiosRequestConfig, AxiosResponse } from "axios";
2
+ interface Config {
3
+ url: string;
4
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
5
+ headers: {
6
+ key: string;
7
+ value: string;
8
+ enabled: boolean;
9
+ }[];
10
+ bodyType: "raw" | "none";
11
+ body: string;
12
+ queryParams: {
13
+ key: string;
14
+ value: string;
15
+ }[];
16
+ settings: {
17
+ removeRefererHeader: boolean;
18
+ strictHttpParser: boolean;
19
+ encodeUrl: boolean;
20
+ disableCookieJar: boolean;
21
+ useServerCipherSuite: boolean;
22
+ maxRedirects: number;
23
+ };
24
+ tests: {
25
+ pattern: string;
26
+ value: string | number | boolean;
27
+ operator: "eq" | "ne" | "gt" | "lt" | "gte" | "lte" | "mat";
28
+ pass: boolean;
29
+ fail?: boolean;
30
+ receivedValue?: any;
31
+ }[] | null | undefined;
32
+ tokens: {
33
+ token: string;
34
+ username: string;
35
+ password: string;
36
+ };
37
+ authType: "Bearer" | "Basic" | "None";
38
+ isStaticToken: boolean;
39
+ status: number;
40
+ }
41
+ interface Param {
42
+ [key: string]: string;
43
+ }
3
44
  declare class Api {
4
45
  logger: any;
5
46
  private axiosClient;
@@ -7,7 +48,7 @@ declare class Api {
7
48
  getProxyObject(proxy?: string): import("http").Agent | null;
8
49
  axiosClientRequest<T = any>(config: AxiosRequestConfig): Promise<AxiosResponse<T, any>>;
9
50
  setProxy(proxy?: string): void;
10
- request<T = any>(config: AxiosRequestConfig): Promise<AxiosResponse<T, any>>;
51
+ request<T = any>(config: Config, params: Param, testData: any, world: any): Promise<AxiosResponse<T, any>>;
11
52
  requestWithAuth(methodName: string, world: any, token: string, params: any): Promise<any>;
12
53
  }
13
54
  export { Api };
package/lib/api.js CHANGED
@@ -3,7 +3,12 @@ import { existsSync, readFileSync } from "fs";
3
3
  import path from "path";
4
4
  import tunnel from "tunnel";
5
5
  import objectPath from "object-path";
6
+ import { _commandFinally } from "./command_common.js";
7
+ import { getHumanReadableErrorMessage } from "./error-messages.js";
8
+ import { tryParseJson, replaceWithLocalTestData } from "./utils.js";
6
9
  class Api {
10
+ logger;
11
+ axiosClient;
7
12
  constructor(logger) {
8
13
  this.logger = logger;
9
14
  if (!logger) {
@@ -75,25 +80,204 @@ class Api {
75
80
  this.logger.info(agent);
76
81
  this.axiosClient = axios.create({ proxy: false, httpsAgent: agent });
77
82
  }
78
- async request(config) {
79
- return await this.axiosClientRequest(config);
83
+ async request(config, params, testData, world) {
84
+ // return await this.axiosClientRequest<T>(config);
85
+ const startTime = Date.now();
86
+ let result = null;
87
+ const state = {
88
+ startTime,
89
+ params,
90
+ testData,
91
+ world,
92
+ element_name: "API",
93
+ type: "api_test",
94
+ text: `Api test`,
95
+ info: {},
96
+ };
97
+ const info = {
98
+ tests: config.tests,
99
+ testsPassed: 0,
100
+ failCause: {},
101
+ };
102
+ info.tests?.forEach((test) => {
103
+ test.fail = true;
104
+ });
105
+ state.info = info;
106
+ let error = null;
107
+ const fixedUrl = await repStrWParamTData(config.url, params, testData, world);
108
+ const fixedQueryParams = config.queryParams.map(async (param) => {
109
+ return {
110
+ key: await repStrWParamTData(param.key, params, testData, world),
111
+ value: await repStrWParamTData(param.value, params, testData, world),
112
+ };
113
+ });
114
+ const fixedReqHeaders = config.headers.map(async (header) => {
115
+ return {
116
+ key: await repStrWParamTData(header.key, params, testData, world),
117
+ value: await repStrWParamTData(header.value, params, testData, world),
118
+ enabled: header.enabled,
119
+ };
120
+ });
121
+ if (config.authType === "Bearer") {
122
+ //@ts-ignore
123
+ config.tokens.token = await repStrWParamTData(config.tokens.token, params, testData, world);
124
+ }
125
+ else if (config.authType === "Basic") {
126
+ //@ts-ignore
127
+ config.tokens.username = await repStrWParamTData(config.tokens.username, params, testData, world);
128
+ //@ts-ignore
129
+ config.tokens.password = await repStrWParamTData(config.tokens.password, params, testData, world);
130
+ }
131
+ if (config.bodyType === "raw") {
132
+ config.body = tryParseJson(await repStrWParamTData(config.body, params, testData, world));
133
+ }
134
+ let formattedUrl;
135
+ const urlObj = new URL(fixedUrl);
136
+ const existingParams = new URLSearchParams(urlObj.search);
137
+ if (existingParams.size > 0) {
138
+ formattedUrl =
139
+ (await Promise.all(fixedQueryParams)).filter(async (data) => !!data.key).length > 0
140
+ ? `${fixedUrl}&${(await Promise.all(fixedQueryParams)).map((param) => `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`).join("&")}`
141
+ : fixedUrl;
142
+ }
143
+ else {
144
+ formattedUrl =
145
+ (await Promise.all(fixedQueryParams)).filter(async (data) => !!data.key).length > 0
146
+ ? `${fixedUrl}?${(await Promise.all(fixedQueryParams)).map((param) => `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`).join("&")}`
147
+ : fixedUrl;
148
+ }
149
+ const axiosConfig = {
150
+ method: config.method,
151
+ url: formattedUrl,
152
+ headers: (await Promise.all(fixedReqHeaders)).reduce((acc, header) => {
153
+ if (header.enabled && header.key.length > 0)
154
+ acc[header.key] = header.value;
155
+ return acc;
156
+ }, {}),
157
+ data: config.bodyType === "raw" ? config.body : undefined,
158
+ maxRedirects: config.settings.maxRedirects,
159
+ validateStatus: config.settings.strictHttpParser ? (status) => status >= 200 && status < 300 : null,
160
+ };
161
+ if (config.authType === "Bearer") {
162
+ //@ts-ignore
163
+ axiosConfig.headers["Authorization"] = `Bearer ${config.tokens.token}`;
164
+ }
165
+ else if (config.authType === "Basic" && config.tokens.username && config.tokens.password) {
166
+ //@ts-ignore
167
+ axiosConfig.headers["Authorization"] = `Basic ${btoa(`${config.tokens.username}:${config.tokens.password}`)}`;
168
+ }
169
+ // const tests = config.tests;
170
+ // let testsPassed = 0;
171
+ let res = {};
172
+ try {
173
+ res = await this.axiosClientRequest(axiosConfig);
174
+ state.info.headers = res.headers;
175
+ state.info.status = res.status;
176
+ state.info.data = res.data;
177
+ if (res.status != config.status) {
178
+ throw new Error(`The returned status code ${res.status} doesn't match the saved status code ${config.status}`);
179
+ }
180
+ if (info.tests && Array.isArray(info.tests) && info.tests.length > 0) {
181
+ await Promise.all(info.tests.map(async (test) => {
182
+ test.fail = true;
183
+ const receivedValue = getValue(res.data, test.pattern);
184
+ test.receivedValue = receivedValue;
185
+ test.value = await repStrWParamTData(String(test.value), params, testData, world);
186
+ switch (test.operator) {
187
+ case "eq":
188
+ test.fail = receivedValue !== test.value;
189
+ break;
190
+ case "ne":
191
+ test.fail = receivedValue === test.value;
192
+ break;
193
+ case "gt":
194
+ test.fail = receivedValue <= test.value;
195
+ break;
196
+ case "lt":
197
+ test.fail = receivedValue >= test.value;
198
+ break;
199
+ case "gte":
200
+ test.fail = receivedValue < test.value;
201
+ break;
202
+ case "lte":
203
+ test.fail = receivedValue > test.value;
204
+ break;
205
+ case "mat":
206
+ test.fail = !new RegExp(test.value).test(receivedValue);
207
+ break;
208
+ default:
209
+ test.fail = true;
210
+ break;
211
+ }
212
+ }));
213
+ const testsFailed = info.tests.filter((test) => test.fail);
214
+ info.testsPassed = info.tests.length - testsFailed.length;
215
+ if (testsFailed.length > 0) {
216
+ throw new Error("Tests failed");
217
+ }
218
+ }
219
+ else {
220
+ info.testsPassed = 0;
221
+ }
222
+ return res;
223
+ }
224
+ catch (e) {
225
+ error = e;
226
+ process.env.NO_RETRAIN = "false";
227
+ this.logger.error("Error while sending request " + error.message ? error.message : error.code);
228
+ error.stack = "";
229
+ state.info.failCause.fail = true;
230
+ const errorClassification = getHumanReadableErrorMessage(error, state.info);
231
+ state.info.errorType = errorClassification.errorType;
232
+ state.info.errorMessage = errorClassification.errorMessage;
233
+ Object.assign(error, { info: state.info });
234
+ state.error = error;
235
+ state.commandError = true;
236
+ throw error;
237
+ }
238
+ finally {
239
+ const statusText = res.statusText ? res.statusText : error ? error.code : null;
240
+ state.info.statusText = statusText;
241
+ await _commandFinally(state, this);
242
+ }
80
243
  }
81
244
  async requestWithAuth(methodName, world, token, params) {
82
245
  const startTime = Date.now();
83
- let error = null, tests = {}, res = null, testsPassed = 0;
246
+ let error = null,
247
+ // tests: any = {},
248
+ res = null;
249
+ // testsPassed = 0;
250
+ const state = {
251
+ startTime,
252
+ params,
253
+ world,
254
+ element_name: "API",
255
+ type: "api_test",
256
+ text: `Api test for ${methodName}`,
257
+ info: {},
258
+ };
84
259
  const apiFilePath = path.join("./features", "apis", methodName + ".json");
85
260
  let result = null;
86
261
  if (existsSync(apiFilePath)) {
87
262
  try {
88
263
  const apiRequests = JSON.parse(readFileSync(apiFilePath, "utf8"));
264
+ const info = {
265
+ tests: apiRequests.tests,
266
+ testsPassed: 0,
267
+ failCause: {},
268
+ };
269
+ state.info = info;
89
270
  const useAuthHeaders = apiRequests.useAuthHeaders;
90
271
  const config = JSON.parse(apiRequests.config);
91
272
  if (useAuthHeaders) {
92
- config.headers = Object.assign(Object.assign({}, config.headers), { Authorization: token });
273
+ config.headers = {
274
+ ...config.headers,
275
+ Authorization: token,
276
+ };
93
277
  }
94
278
  res = await this.axiosClientRequest(JSON.parse(apiRequests.config));
95
- tests = apiRequests.tests;
96
- tests === null || tests === void 0 ? void 0 : tests.forEach((test) => {
279
+ info.tests = apiRequests.tests;
280
+ info.tests?.forEach((test) => {
97
281
  test.fail = true;
98
282
  const path = test === null || test === void 0 ? void 0 : test.pattern.split(".");
99
283
  let lengthExists = false;
@@ -102,7 +286,7 @@ class Api {
102
286
  lengthExists = true;
103
287
  }
104
288
  const value = objectPath.get(res.data, path.join("."));
105
- if (lengthExists && (value === null || value === void 0 ? void 0 : value.length) == test.value) {
289
+ if (lengthExists && value?.length == test.value) {
106
290
  test.fail = false;
107
291
  }
108
292
  else if (Array.isArray(value)) {
@@ -117,58 +301,67 @@ class Api {
117
301
  if (res.status != statusCode) {
118
302
  throw new Error(`The returned status code ${res.status} doesn't match the saved status code ${statusCode}`);
119
303
  }
120
- const testsFailed = tests.filter((test) => test.fail);
121
- testsPassed = tests.length - testsFailed.length;
304
+ const testsFailed = info.tests.filter((test) => test.fail);
305
+ info.testsPassed = info.tests.length - testsFailed.length;
306
+ state.info.headers = res.headers;
307
+ state.info.status = res.status;
308
+ state.info.data = res.data;
122
309
  if (testsFailed.length > 0) {
123
310
  throw new Error("Tests failed");
124
311
  }
125
- result = res.data;
312
+ return res;
126
313
  }
127
314
  catch (e) {
128
315
  error = e;
316
+ process.env.NO_RETRAIN = "false";
317
+ this.logger.error("Error while sending request " + error.message ? error.message : error.code);
318
+ error.stack = "";
319
+ state.info.failCause.fail = true;
320
+ const errorClassification = getHumanReadableErrorMessage(error, state.info);
321
+ state.info.errorType = errorClassification.errorType;
322
+ state.info.errorMessage = errorClassification.errorMessage;
323
+ Object.assign(error, { info: state.info });
324
+ state.error = error;
325
+ state.commandError = true;
326
+ if (error?.stack) {
327
+ error.stack = "";
328
+ }
129
329
  throw error;
130
330
  }
131
331
  finally {
132
- const endTime = Date.now();
133
- const properties = {
134
- element_name: "API",
135
- type: "api_test",
136
- text: `Api test for ${methodName}`,
137
- result: error
138
- ? {
139
- status: "FAILED",
140
- startTime,
141
- endTime,
142
- }
143
- : {
144
- status: "PASSED",
145
- startTime,
146
- endTime,
147
- },
148
- info: {
149
- tests,
150
- testsPassed,
151
- headers: res.headers,
152
- status: res.status,
153
- data: res.data,
154
- statusText: res.statusText,
155
- },
156
- };
157
- if (world && world.attach) {
158
- world.attach(JSON.stringify(properties), {
159
- mediaType: "application/json",
160
- });
161
- }
162
- if (error) {
163
- //@ts-ignore
164
- const err = new Error(error.message);
165
- err.stack = "";
166
- throw err;
167
- }
168
- return result;
332
+ const statusText = res.statusText ? res.statusText : error ? error.code : null;
333
+ state.info.statusText = statusText;
334
+ await _commandFinally(state, this);
169
335
  }
170
336
  }
171
337
  }
172
338
  }
339
+ const repStrWParamTData = async (str, params, testData, world) => {
340
+ let newStr = str;
341
+ Object.keys(params).forEach((key) => {
342
+ newStr = newStr.replaceAll(`<${key.slice(1)}>`, params[key]);
343
+ });
344
+ newStr = await replaceWithLocalTestData(newStr, world, true, true, world.context, world.context.web, false);
345
+ return newStr;
346
+ };
347
+ const getValue = (data, pattern) => {
348
+ const path = pattern.split(".");
349
+ let lengthExists = false;
350
+ if (path[path.length - 1] === "length") {
351
+ path.pop();
352
+ lengthExists = true;
353
+ }
354
+ const value = objectPath.get(data, pattern);
355
+ if (lengthExists && Array.isArray(value)) {
356
+ return value?.length;
357
+ }
358
+ else if (hasValue(value)) {
359
+ return value;
360
+ }
361
+ return undefined;
362
+ };
363
+ const hasValue = (value) => {
364
+ return value !== undefined;
365
+ };
173
366
  export { Api };
174
367
  //# sourceMappingURL=api.js.map
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
+ import type { TestContext } from "./test_context.js";
2
+ import { InitScripts } from "./generation_scripts.js";
3
+ declare let context: TestContext | null;
1
4
  declare const navigate: (path?: string) => Promise<void>;
2
- declare const initContext: (path: string, doNavigate?: boolean, headless?: boolean, world?: any, moveToRight?: number) => Promise<any>;
5
+ declare const initContext: (path: string, doNavigate?: boolean, headless?: boolean, world?: any, moveToRight?: number, initScript?: InitScripts | null, envName?: string | null) => Promise<any>;
3
6
  declare const closeContext: () => Promise<void>;
4
- export { initContext, navigate, closeContext };
7
+ declare const getTestData: (currentEnv: string, world: any, dataFile?: string, feature?: string, scenario?: string, context?: any) => Promise<void>;
8
+ declare const resetTestData: (envPath: string, world: any) => Promise<void>;
9
+ export { initContext, navigate, closeContext, resetTestData, getTestData, context as TestContext };