automation_model 1.0.421-stage → 1.0.421

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 (55) hide show
  1. package/README.md +130 -0
  2. package/lib/api.d.ts +43 -1
  3. package/lib/api.js +222 -47
  4. package/lib/api.js.map +1 -1
  5. package/lib/auto_page.d.ts +5 -2
  6. package/lib/auto_page.js +140 -21
  7. package/lib/auto_page.js.map +1 -1
  8. package/lib/browser_manager.d.ts +7 -3
  9. package/lib/browser_manager.js +151 -47
  10. package/lib/browser_manager.js.map +1 -1
  11. package/lib/command_common.d.ts +6 -0
  12. package/lib/command_common.js +182 -0
  13. package/lib/command_common.js.map +1 -0
  14. package/lib/environment.js +5 -3
  15. package/lib/environment.js.map +1 -1
  16. package/lib/error-messages.d.ts +6 -0
  17. package/lib/error-messages.js +206 -0
  18. package/lib/error-messages.js.map +1 -0
  19. package/lib/generation_scripts.d.ts +4 -0
  20. package/lib/generation_scripts.js +2 -0
  21. package/lib/generation_scripts.js.map +1 -0
  22. package/lib/index.d.ts +1 -0
  23. package/lib/index.js +1 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/init_browser.d.ts +4 -2
  26. package/lib/init_browser.js +86 -6
  27. package/lib/init_browser.js.map +1 -1
  28. package/lib/locate_element.js +15 -13
  29. package/lib/locate_element.js.map +1 -1
  30. package/lib/locator.d.ts +36 -0
  31. package/lib/locator.js +165 -0
  32. package/lib/locator.js.map +1 -1
  33. package/lib/locator_log.d.ts +26 -0
  34. package/lib/locator_log.js +69 -0
  35. package/lib/locator_log.js.map +1 -0
  36. package/lib/network.d.ts +3 -0
  37. package/lib/network.js +183 -0
  38. package/lib/network.js.map +1 -0
  39. package/lib/stable_browser.d.ts +86 -34
  40. package/lib/stable_browser.js +1458 -1253
  41. package/lib/stable_browser.js.map +1 -1
  42. package/lib/table.d.ts +13 -0
  43. package/lib/table.js +187 -0
  44. package/lib/table.js.map +1 -0
  45. package/lib/table_helper.d.ts +19 -0
  46. package/lib/table_helper.js +101 -0
  47. package/lib/table_helper.js.map +1 -0
  48. package/lib/test_context.d.ts +3 -0
  49. package/lib/test_context.js +13 -12
  50. package/lib/test_context.js.map +1 -1
  51. package/lib/utils.d.ts +19 -1
  52. package/lib/utils.js +553 -3
  53. package/lib/utils.js.map +1 -1
  54. package/package.json +9 -6
  55. /package/lib/{axe → scripts}/axe.mini.js +0 -0
package/README.md ADDED
@@ -0,0 +1,130 @@
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** - Can be used to set the timeout (`{timeout: 30000}` is the default).
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
+ /* Return the ARIA snapshot as string */
55
+ async getAriaSnapshot();
56
+ ```
57
+
58
+ ## Code Use Cases
59
+
60
+ ### Original Function
61
+
62
+ ```javascript
63
+ async function login_with_user_and_password(_username, _password) {
64
+ const _params = { _username, _password };
65
+ // Fill Username textbox with "_username"
66
+ await context.stable.clickType(elements["textbox_username"], _username, false, _params, null, this);
67
+ // Fill Password textbox with "_password"
68
+ await context.stable.clickType(elements["textbox_password"], _password, false, _params, null, this);
69
+ // Click on Login button
70
+ await context.stable.click(elements["button_login"], _params, null, this);
71
+ }
72
+ ```
73
+
74
+ ### Example 1: Continue execution if step fails
75
+
76
+ ```javascript
77
+ async function login_with_user_and_password(_username, _password) {
78
+ const _params = { _username, _password };
79
+ try {
80
+ await context.stable.clickType(elements["textbox_username"], _username, false, _params, null, this);
81
+ await context.stable.clickType(elements["textbox_password"], _password, false, _params, null, this);
82
+ await context.stable.click(elements["button_login"], _params, null, this);
83
+ } catch (error) {}
84
+ }
85
+ ```
86
+
87
+ ### Example 2: Perform action only if "textbox_username" is found
88
+
89
+ ```javascript
90
+ async function login_with_user_and_password(_username, _password) {
91
+ const _params = { _username, _password };
92
+ if (await context.stable.waitForElement(elements["textbox_username"], _params, { timeout: 4000 }, this)) {
93
+ await context.stable.clickType(elements["textbox_username"], _username, false, _params, null, this);
94
+ await context.stable.clickType(elements["textbox_password"], _password, false, _params, null, this);
95
+ await context.stable.click(elements["button_login"], _params, null, this);
96
+ }
97
+ }
98
+ ```
99
+
100
+ ### Example 3: Retry step if it fails
101
+
102
+ ```javascript
103
+ async function login_with_user_and_password(_username, _password) {
104
+ const _params = { _username, _password };
105
+ const maxRetry = 2;
106
+ for (let i = 0; i < maxRetry; i++) {
107
+ try {
108
+ await context.stable.clickType(elements["textbox_username"], _username, false, _params, null, this);
109
+ await context.stable.clickType(elements["textbox_password"], _password, false, _params, null, this);
110
+ await context.stable.click(elements["button_login"], _params, null, this);
111
+ break;
112
+ } catch (error) {
113
+ if (i === maxRetry - 1) {
114
+ throw error;
115
+ }
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ ### Example 4: Set click timeout to 2 minutes
122
+
123
+ ```javascript
124
+ async function login_with_user_and_password(_username, _password) {
125
+ const _params = { _username, _password };
126
+ await context.stable.clickType(elements["textbox_username"], _username, false, _params, { timeout: 120000 }, this);
127
+ await context.stable.clickType(elements["textbox_password"], _password, false, _params, { timeout: 120000 }, this);
128
+ await context.stable.click(elements["button_login"], _params, { timeout: 120000 }, this);
129
+ }
130
+ ```
package/lib/api.d.ts CHANGED
@@ -1,5 +1,47 @@
1
1
  /// <reference types="node" />
2
2
  import { AxiosRequestConfig, AxiosResponse } from "axios";
3
+ interface Config {
4
+ url: string;
5
+ method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS" | "HEAD";
6
+ headers: {
7
+ key: string;
8
+ value: string;
9
+ enabled: boolean;
10
+ }[];
11
+ bodyType: "raw" | "none";
12
+ body: string;
13
+ queryParams: {
14
+ key: string;
15
+ value: string;
16
+ }[];
17
+ settings: {
18
+ removeRefererHeader: boolean;
19
+ strictHttpParser: boolean;
20
+ encodeUrl: boolean;
21
+ disableCookieJar: boolean;
22
+ useServerCipherSuite: boolean;
23
+ maxRedirects: number;
24
+ };
25
+ tests: {
26
+ pattern: string;
27
+ value: string | number | boolean;
28
+ operator: "eq" | "ne" | "gt" | "lt" | "gte" | "lte" | "mat";
29
+ pass: boolean;
30
+ fail?: boolean;
31
+ receivedValue?: any;
32
+ }[] | null | undefined;
33
+ tokens: {
34
+ token: string;
35
+ username: string;
36
+ password: string;
37
+ };
38
+ authType: "Bearer" | "Basic" | "None";
39
+ isStaticToken: boolean;
40
+ status: number;
41
+ }
42
+ interface Param {
43
+ [key: string]: string;
44
+ }
3
45
  declare class Api {
4
46
  logger: any;
5
47
  private axiosClient;
@@ -7,7 +49,7 @@ declare class Api {
7
49
  getProxyObject(proxy?: string): import("http").Agent | null;
8
50
  axiosClientRequest<T = any>(config: AxiosRequestConfig): Promise<AxiosResponse<T, any>>;
9
51
  setProxy(proxy?: string): void;
10
- request<T = any>(config: AxiosRequestConfig): Promise<AxiosResponse<T, any>>;
52
+ request<T = any>(config: Config, params: Param, testData: any, world: any): Promise<AxiosResponse<T, any>>;
11
53
  requestWithAuth(methodName: string, world: any, token: string, params: any): Promise<any>;
12
54
  }
13
55
  export { Api };
package/lib/api.js CHANGED
@@ -3,7 +3,11 @@ 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";
6
8
  class Api {
9
+ logger;
10
+ axiosClient;
7
11
  constructor(logger) {
8
12
  this.logger = logger;
9
13
  if (!logger) {
@@ -75,25 +79,185 @@ class Api {
75
79
  this.logger.info(agent);
76
80
  this.axiosClient = axios.create({ proxy: false, httpsAgent: agent });
77
81
  }
78
- async request(config) {
79
- return await this.axiosClientRequest(config);
82
+ async request(config, params, testData, world) {
83
+ // return await this.axiosClientRequest<T>(config);
84
+ const startTime = Date.now();
85
+ let result = null;
86
+ const state = {
87
+ startTime,
88
+ params,
89
+ testData,
90
+ world,
91
+ element_name: "API",
92
+ type: "api_test",
93
+ text: `Api test`,
94
+ info: {},
95
+ };
96
+ const info = {
97
+ tests: config.tests,
98
+ testsPassed: 0,
99
+ failCause: {},
100
+ };
101
+ info.tests?.forEach((test) => {
102
+ test.fail = true;
103
+ });
104
+ state.info = info;
105
+ let error = null;
106
+ const fixedUrl = repStrWParamTData(config.url, params, testData);
107
+ const fixedQueryParams = config.queryParams.map((param) => {
108
+ return {
109
+ key: repStrWParamTData(param.key, params, testData),
110
+ value: repStrWParamTData(param.value, params, testData),
111
+ };
112
+ });
113
+ const fixedReqHeaders = config.headers.map((header) => {
114
+ return {
115
+ key: repStrWParamTData(header.key, params, testData),
116
+ value: repStrWParamTData(header.value, params, testData),
117
+ enabled: header.enabled,
118
+ };
119
+ });
120
+ if (config.authType === "Bearer") {
121
+ //@ts-ignore
122
+ config.tokens.token = repStrWParamTData(config.tokens.token, params, testData);
123
+ }
124
+ else if (config.authType === "Basic") {
125
+ //@ts-ignore
126
+ config.tokens.username = repStrWParamTData(config.tokens.username, params, testData);
127
+ //@ts-ignore
128
+ config.tokens.password = repStrWParamTData(config.tokens.password, params, testData);
129
+ }
130
+ const formattedUrl = fixedQueryParams.filter((data) => !!data.key).length > 0
131
+ ? `${fixedUrl}?${fixedQueryParams.map((data) => `${data.key}=${data.value}`).join("&")}`
132
+ : fixedUrl;
133
+ const axiosConfig = {
134
+ method: config.method,
135
+ url: formattedUrl,
136
+ headers: fixedReqHeaders.reduce((acc, header) => {
137
+ if (header.enabled && header.key.length > 0)
138
+ acc[header.key] = header.value;
139
+ return acc;
140
+ }, {}),
141
+ data: config.bodyType === "raw" ? config.body : undefined,
142
+ maxRedirects: config.settings.maxRedirects,
143
+ validateStatus: config.settings.strictHttpParser ? (status) => status >= 200 && status < 300 : null,
144
+ };
145
+ if (config.authType === "Bearer") {
146
+ //@ts-ignore
147
+ axiosConfig.headers["Authorization"] = `Bearer ${config.tokens.token}`;
148
+ }
149
+ else if (config.authType === "Basic" && config.tokens.username && config.tokens.password) {
150
+ //@ts-ignore
151
+ axiosConfig.headers["Authorization"] = `Basic ${btoa(`${config.tokens.username}:${config.tokens.password}`)}`;
152
+ }
153
+ // const tests = config.tests;
154
+ // let testsPassed = 0;
155
+ let res = {};
156
+ try {
157
+ res = await this.axiosClientRequest(axiosConfig);
158
+ if (res.status != config.status) {
159
+ throw new Error(`The returned status code ${res.status} doesn't match the saved status code ${config.status}`);
160
+ }
161
+ if (info.tests) {
162
+ info.tests?.forEach((test) => {
163
+ test.fail = true;
164
+ const receivedValue = getValue(res.data, test.pattern);
165
+ test.receivedValue = receivedValue;
166
+ switch (test.operator) {
167
+ case "eq":
168
+ test.fail = receivedValue !== test.value;
169
+ break;
170
+ case "ne":
171
+ test.fail = receivedValue === test.value;
172
+ break;
173
+ case "gt":
174
+ test.fail = receivedValue <= test.value;
175
+ break;
176
+ case "lt":
177
+ test.fail = receivedValue >= test.value;
178
+ break;
179
+ case "gte":
180
+ test.fail = receivedValue < test.value;
181
+ break;
182
+ case "lte":
183
+ test.fail = receivedValue > test.value;
184
+ break;
185
+ case "mat":
186
+ test.fail = !new RegExp(test.value).test(receivedValue);
187
+ break;
188
+ default:
189
+ test.fail = true;
190
+ break;
191
+ }
192
+ });
193
+ const testsFailed = info.tests.filter((test) => test.fail);
194
+ info.testsPassed = info.tests.length - testsFailed.length;
195
+ state.info.headers = res.headers;
196
+ state.info.status = res.status;
197
+ state.info.data = res.data;
198
+ if (testsFailed.length > 0) {
199
+ throw new Error("Tests failed");
200
+ }
201
+ }
202
+ return res;
203
+ }
204
+ catch (e) {
205
+ error = e;
206
+ process.env.NO_RETRAIN = "false";
207
+ this.logger.error("Error while sending request " + error.message ? error.message : error.code);
208
+ error.stack = "";
209
+ state.info.failCause.fail = true;
210
+ const errorClassification = getHumanReadableErrorMessage(error, state.info);
211
+ state.info.errorType = errorClassification.errorType;
212
+ state.info.errorMessage = errorClassification.errorMessage;
213
+ Object.assign(error, { info: state.info });
214
+ state.error = error;
215
+ state.commandError = true;
216
+ throw error;
217
+ }
218
+ finally {
219
+ const statusText = res.statusText ? res.statusText : error ? error.code : null;
220
+ state.info.statusText = statusText;
221
+ _commandFinally(state, this);
222
+ }
80
223
  }
81
224
  async requestWithAuth(methodName, world, token, params) {
82
225
  const startTime = Date.now();
83
- let error = null, tests = {}, res = null, testsPassed = 0;
226
+ let error = null,
227
+ // tests: any = {},
228
+ res = null;
229
+ // testsPassed = 0;
230
+ const state = {
231
+ startTime,
232
+ params,
233
+ world,
234
+ element_name: "API",
235
+ type: "api_test",
236
+ text: `Api test for ${methodName}`,
237
+ info: {},
238
+ };
84
239
  const apiFilePath = path.join("./features", "apis", methodName + ".json");
85
240
  let result = null;
86
241
  if (existsSync(apiFilePath)) {
87
242
  try {
88
243
  const apiRequests = JSON.parse(readFileSync(apiFilePath, "utf8"));
244
+ const info = {
245
+ tests: apiRequests.tests,
246
+ testsPassed: 0,
247
+ failCause: {},
248
+ };
249
+ state.info = info;
89
250
  const useAuthHeaders = apiRequests.useAuthHeaders;
90
251
  const config = JSON.parse(apiRequests.config);
91
252
  if (useAuthHeaders) {
92
- config.headers = Object.assign(Object.assign({}, config.headers), { Authorization: token });
253
+ config.headers = {
254
+ ...config.headers,
255
+ Authorization: token,
256
+ };
93
257
  }
94
258
  res = await this.axiosClientRequest(JSON.parse(apiRequests.config));
95
- tests = apiRequests.tests;
96
- tests === null || tests === void 0 ? void 0 : tests.forEach((test) => {
259
+ info.tests = apiRequests.tests;
260
+ info.tests?.forEach((test) => {
97
261
  test.fail = true;
98
262
  const path = test === null || test === void 0 ? void 0 : test.pattern.split(".");
99
263
  let lengthExists = false;
@@ -102,7 +266,7 @@ class Api {
102
266
  lengthExists = true;
103
267
  }
104
268
  const value = objectPath.get(res.data, path.join("."));
105
- if (lengthExists && (value === null || value === void 0 ? void 0 : value.length) == test.value) {
269
+ if (lengthExists && value?.length == test.value) {
106
270
  test.fail = false;
107
271
  }
108
272
  else if (Array.isArray(value)) {
@@ -117,58 +281,69 @@ class Api {
117
281
  if (res.status != statusCode) {
118
282
  throw new Error(`The returned status code ${res.status} doesn't match the saved status code ${statusCode}`);
119
283
  }
120
- const testsFailed = tests.filter((test) => test.fail);
121
- testsPassed = tests.length - testsFailed.length;
284
+ const testsFailed = info.tests.filter((test) => test.fail);
285
+ info.testsPassed = info.tests.length - testsFailed.length;
286
+ state.info.headers = res.headers;
287
+ state.info.status = res.status;
288
+ state.info.data = res.data;
122
289
  if (testsFailed.length > 0) {
123
290
  throw new Error("Tests failed");
124
291
  }
125
- result = res.data;
292
+ return res;
126
293
  }
127
294
  catch (e) {
128
295
  error = e;
296
+ process.env.NO_RETRAIN = "false";
297
+ this.logger.error("Error while sending request " + error.message ? error.message : error.code);
298
+ error.stack = "";
299
+ state.info.failCause.fail = true;
300
+ const errorClassification = getHumanReadableErrorMessage(error, state.info);
301
+ state.info.errorType = errorClassification.errorType;
302
+ state.info.errorMessage = errorClassification.errorMessage;
303
+ Object.assign(error, { info: state.info });
304
+ state.error = error;
305
+ state.commandError = true;
306
+ if (error?.stack) {
307
+ error.stack = "";
308
+ }
129
309
  throw error;
130
310
  }
131
311
  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;
312
+ const statusText = res.statusText ? res.statusText : error ? error.code : null;
313
+ state.info.statusText = statusText;
314
+ _commandFinally(state, this);
169
315
  }
170
316
  }
171
317
  }
172
318
  }
319
+ const repStrWParamTData = (str, params, testData) => {
320
+ let newStr = str;
321
+ Object.keys(params).forEach((key) => {
322
+ newStr = newStr.replaceAll(`"<${key.slice(1)}>"`, params[key]);
323
+ });
324
+ Object.keys(testData).forEach((key) => {
325
+ newStr = newStr.replaceAll(`{{${key}}}`, testData[key]);
326
+ });
327
+ return newStr;
328
+ };
329
+ const getValue = (data, pattern) => {
330
+ const path = pattern.split(".");
331
+ let lengthExists = false;
332
+ if (path[path.length - 1] === "length") {
333
+ path.pop();
334
+ lengthExists = true;
335
+ }
336
+ const value = objectPath.get(data, pattern);
337
+ if (lengthExists && Array.isArray(value)) {
338
+ return value?.length;
339
+ }
340
+ else if (hasValue(value)) {
341
+ return value;
342
+ }
343
+ return undefined;
344
+ };
345
+ const hasValue = (value) => {
346
+ return value !== undefined;
347
+ };
173
348
  export { Api };
174
349
  //# 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,7 @@
1
+ import { InitScripts } from "./generation_scripts.js";
1
2
  declare const navigate: (path?: string) => Promise<void>;
2
- declare const initContext: (path: string, doNavigate?: boolean, headless?: boolean, world?: any, moveToRight?: number) => Promise<any>;
3
+ declare const initContext: (path: string, doNavigate?: boolean, headless?: boolean, world?: any, moveToRight?: number, initScript?: InitScripts | null, envName?: string | null) => Promise<any>;
3
4
  declare const closeContext: () => Promise<void>;
4
- export { initContext, navigate, closeContext };
5
+ declare const getTestData: (currentEnv: string, world: any, dataFile?: string) => Promise<void>;
6
+ declare const resetTestData: (envPath: string, world: any) => Promise<void>;
7
+ export { initContext, navigate, closeContext, resetTestData, getTestData };