pw-automation-framework 2.0.1

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 (111) hide show
  1. package/README.md +93 -0
  2. package/bin/lexxit-automation-framework.js +427 -0
  3. package/dist/app.d.ts +2 -0
  4. package/dist/app.js +26 -0
  5. package/dist/app.js.map +1 -0
  6. package/dist/controllers/controller.d.ts +57 -0
  7. package/dist/controllers/controller.js +263 -0
  8. package/dist/controllers/controller.js.map +1 -0
  9. package/dist/core/BrowserManager.d.ts +46 -0
  10. package/dist/core/BrowserManager.js +377 -0
  11. package/dist/core/BrowserManager.js.map +1 -0
  12. package/dist/core/PlaywrightEngine.d.ts +16 -0
  13. package/dist/core/PlaywrightEngine.js +246 -0
  14. package/dist/core/PlaywrightEngine.js.map +1 -0
  15. package/dist/core/ScreenshotManager.d.ts +10 -0
  16. package/dist/core/ScreenshotManager.js +28 -0
  17. package/dist/core/ScreenshotManager.js.map +1 -0
  18. package/dist/core/TestData.d.ts +12 -0
  19. package/dist/core/TestData.js +29 -0
  20. package/dist/core/TestData.js.map +1 -0
  21. package/dist/core/TestExecutor.d.ts +16 -0
  22. package/dist/core/TestExecutor.js +355 -0
  23. package/dist/core/TestExecutor.js.map +1 -0
  24. package/dist/core/handlers/AllHandlers.d.ts +116 -0
  25. package/dist/core/handlers/AllHandlers.js +648 -0
  26. package/dist/core/handlers/AllHandlers.js.map +1 -0
  27. package/dist/core/handlers/BaseHandler.d.ts +16 -0
  28. package/dist/core/handlers/BaseHandler.js +27 -0
  29. package/dist/core/handlers/BaseHandler.js.map +1 -0
  30. package/dist/core/handlers/ClickHandler.d.ts +34 -0
  31. package/dist/core/handlers/ClickHandler.js +359 -0
  32. package/dist/core/handlers/ClickHandler.js.map +1 -0
  33. package/dist/core/handlers/CustomCodeHandler.d.ts +35 -0
  34. package/dist/core/handlers/CustomCodeHandler.js +102 -0
  35. package/dist/core/handlers/CustomCodeHandler.js.map +1 -0
  36. package/dist/core/handlers/DropdownHandler.d.ts +43 -0
  37. package/dist/core/handlers/DropdownHandler.js +304 -0
  38. package/dist/core/handlers/DropdownHandler.js.map +1 -0
  39. package/dist/core/handlers/InputHandler.d.ts +24 -0
  40. package/dist/core/handlers/InputHandler.js +197 -0
  41. package/dist/core/handlers/InputHandler.js.map +1 -0
  42. package/dist/core/registry/ActionRegistry.d.ts +8 -0
  43. package/dist/core/registry/ActionRegistry.js +35 -0
  44. package/dist/core/registry/ActionRegistry.js.map +1 -0
  45. package/dist/installer/frameworkLauncher.d.ts +31 -0
  46. package/dist/installer/frameworkLauncher.js +198 -0
  47. package/dist/installer/frameworkLauncher.js.map +1 -0
  48. package/dist/queue/ExecutionQueue.d.ts +52 -0
  49. package/dist/queue/ExecutionQueue.js +175 -0
  50. package/dist/queue/ExecutionQueue.js.map +1 -0
  51. package/dist/routes/api.routes.d.ts +2 -0
  52. package/dist/routes/api.routes.js +16 -0
  53. package/dist/routes/api.routes.js.map +1 -0
  54. package/dist/server.d.ts +1 -0
  55. package/dist/server.js +30 -0
  56. package/dist/server.js.map +1 -0
  57. package/dist/types/types.d.ts +135 -0
  58. package/dist/types/types.js +4 -0
  59. package/dist/types/types.js.map +1 -0
  60. package/dist/utils/elementHighlight.d.ts +35 -0
  61. package/dist/utils/elementHighlight.js +136 -0
  62. package/dist/utils/elementHighlight.js.map +1 -0
  63. package/dist/utils/locatorHelper.d.ts +7 -0
  64. package/dist/utils/locatorHelper.js +53 -0
  65. package/dist/utils/locatorHelper.js.map +1 -0
  66. package/dist/utils/logger.d.ts +12 -0
  67. package/dist/utils/logger.js +35 -0
  68. package/dist/utils/logger.js.map +1 -0
  69. package/dist/utils/response.d.ts +4 -0
  70. package/dist/utils/response.js +25 -0
  71. package/dist/utils/response.js.map +1 -0
  72. package/dist/utils/responseFormatter.d.ts +78 -0
  73. package/dist/utils/responseFormatter.js +123 -0
  74. package/dist/utils/responseFormatter.js.map +1 -0
  75. package/dist/utils/sseManager.d.ts +32 -0
  76. package/dist/utils/sseManager.js +122 -0
  77. package/dist/utils/sseManager.js.map +1 -0
  78. package/lexxit-automation-framework-2.0.0.tgz +0 -0
  79. package/npmignore +5 -0
  80. package/package.json +36 -0
  81. package/scripts/postinstall.js +52 -0
  82. package/src/app.ts +27 -0
  83. package/src/controllers/controller.ts +282 -0
  84. package/src/core/BrowserManager.ts +398 -0
  85. package/src/core/PlaywrightEngine.ts +371 -0
  86. package/src/core/ScreenshotManager.ts +25 -0
  87. package/src/core/TestData.ts +25 -0
  88. package/src/core/TestExecutor.ts +436 -0
  89. package/src/core/handlers/AllHandlers.ts +626 -0
  90. package/src/core/handlers/BaseHandler.ts +41 -0
  91. package/src/core/handlers/ClickHandler.ts +482 -0
  92. package/src/core/handlers/CustomCodeHandler.ts +123 -0
  93. package/src/core/handlers/DropdownHandler.ts +438 -0
  94. package/src/core/handlers/InputHandler.ts +192 -0
  95. package/src/core/registry/ActionRegistry.ts +31 -0
  96. package/src/installer/frameworkLauncher.ts +242 -0
  97. package/src/installer/install.sh +107 -0
  98. package/src/public/dashboard.html +540 -0
  99. package/src/public/queue-monitor.html +190 -0
  100. package/src/queue/ExecutionQueue.ts +200 -0
  101. package/src/routes/api.routes.ts +16 -0
  102. package/src/server.ts +29 -0
  103. package/src/types/types.ts +169 -0
  104. package/src/utils/elementHighlight.ts +174 -0
  105. package/src/utils/locatorHelper.ts +49 -0
  106. package/src/utils/logger.ts +40 -0
  107. package/src/utils/response.ts +27 -0
  108. package/src/utils/responseFormatter.ts +167 -0
  109. package/src/utils/sseManager.ts +127 -0
  110. package/tsconfig.json +18 -0
  111. package/videos/fb1b94b6-6639-4c9a-82bb-63572606f403/page@5bd5c6c8b62baa700e9810cdd64f5c49.webm +0 -0
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomCodeHandler = void 0;
4
+ const response_1 = require("../../utils/response");
5
+ const locatorHelper_1 = require("../../utils/locatorHelper");
6
+ const BaseHandler_1 = require("./BaseHandler");
7
+ const logger_1 = require("../../utils/logger");
8
+ /**
9
+ * CustomCodeHandler
10
+ * -----------------
11
+ * Mirrors the Python runCustomCode() behaviour:
12
+ *
13
+ * tSetup.runCustomCode('<JS code>', '<returnVariable>', '<optional xpath>')
14
+ *
15
+ * The code string runs inside an async Function with two injected helpers:
16
+ * - tSetup : the Page object (so you can call Playwright APIs from code)
17
+ * - testData: the shared TestData store (read/write mid-script variables)
18
+ *
19
+ * Rules:
20
+ * 1. Declare a variable whose name matches returnVariable — its value is
21
+ * captured, stored in TestData under that key, and returned in data.value.
22
+ * 2. If an xpath is supplied the captured value is also typed into that field.
23
+ * 3. If no returnVariable is supplied the code still runs; pass is returned.
24
+ * 4. On any exception the step fails with the error message + screenshot.
25
+ *
26
+ * Example step_script values:
27
+ * tSetup.runCustomCode('const result = "LN" + Math.floor(Math.random()*1000);', 'result', '//input[@id="ref"]')
28
+ * tSetup.runCustomCode('const otp = String(1000 + Math.floor(Math.random()*9000));', 'otp')
29
+ * tSetup.runCustomCode('await page.waitForTimeout(500); const ts = Date.now();', 'ts')
30
+ */
31
+ class CustomCodeHandler extends BaseHandler_1.BaseHandler {
32
+ constructor(tConfig, page) {
33
+ super(tConfig, page);
34
+ this.log = logger_1.Logger.create("CustomCodeHandler", tConfig.executionId);
35
+ }
36
+ getActions() {
37
+ return {
38
+ runcustomcode: this.runCustomCode.bind(this),
39
+ };
40
+ }
41
+ // ─── runCustomCode(codeStr, returnVariable?, xpath?) ──────────────────────
42
+ async runCustomCode(args) {
43
+ const [codeStr, returnVariable, xpath] = args;
44
+ if (!codeStr || !codeStr.trim()) {
45
+ return (0, response_1.fail)("runCustomCode: codeStr (arg 1) is required");
46
+ }
47
+ this.log.info(`runCustomCode | returnVar="${returnVariable || "none"}" | xpath="${xpath || "none"}"`);
48
+ try {
49
+ // Build context — same idea as Python's context = {"tSetup": self}
50
+ const context = {
51
+ page: this.page,
52
+ tSetup: this.page, // alias so people can write tSetup.xxx inside the code
53
+ testData: this.testData,
54
+ };
55
+ // Execute the code string as an async function so `await` works inside
56
+ const wrappedCode = `
57
+ "use strict";
58
+ const { page, tSetup, testData } = __ctx__;
59
+ ${codeStr}
60
+ return typeof ${returnVariable || "__undefined__"} !== "undefined"
61
+ ? ${returnVariable || "undefined"}
62
+ : undefined;
63
+ `;
64
+ // eslint-disable-next-line no-new-func
65
+ const fn = new Function("__ctx__", `return (async (__ctx__) => { ${wrappedCode} })(__ctx__)`);
66
+ const value = await fn(context);
67
+ // ── Capture return value ───────────────────────────────────────────────
68
+ if (returnVariable && value !== undefined && value !== null) {
69
+ // Store in shared TestData so later steps can reference it
70
+ this.testData.set(returnVariable, value);
71
+ const strValue = String(value);
72
+ this.log.info(`runCustomCode → ${returnVariable} = ${strValue}`);
73
+ // If xpath provided, type the value into the field
74
+ if (xpath && xpath.trim()) {
75
+ try {
76
+ const el = this.page.locator((0, locatorHelper_1.buildLocatorString)("xpath", xpath));
77
+ await el.waitFor({ state: "visible", timeout: this.timeout });
78
+ await el.clear();
79
+ await el.fill(strValue);
80
+ this.log.info(`runCustomCode: typed "${strValue}" into [xpath=${xpath}]`);
81
+ }
82
+ catch (fillErr) {
83
+ // Typing failed — still pass the code execution, but warn
84
+ this.log.warn(`runCustomCode: value generated but fill failed — ${fillErr.message}`);
85
+ }
86
+ }
87
+ const sc = await this.shots.onPass(this.page);
88
+ return (0, response_1.pass)(`Custom code executed. ${returnVariable} = ${strValue}`, sc, { returnVariable, value, type: typeof value });
89
+ }
90
+ // ── No return variable — code ran for side-effects only ───────────────
91
+ const sc = await this.shots.onPass(this.page);
92
+ return (0, response_1.pass)("Custom code executed successfully.", sc);
93
+ }
94
+ catch (error) {
95
+ this.log.error(`runCustomCode failed: ${error.message}`);
96
+ const sc = await this.shots.onFail(this.page);
97
+ return (0, response_1.fail)(`Exception occurred during custom code execution`, error.message, sc);
98
+ }
99
+ }
100
+ }
101
+ exports.CustomCodeHandler = CustomCodeHandler;
102
+ //# sourceMappingURL=CustomCodeHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomCodeHandler.js","sourceRoot":"","sources":["../../../src/core/handlers/CustomCodeHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { Page } from "playwright";
2
+ import { ActionResponse, TestCaseConfig } from "../../types/types";
3
+ import { BaseHandler } from "./BaseHandler";
4
+ /**
5
+ * DropdownHandler
6
+ * ===============
7
+ * ROOT CAUSE OF DROPDOWN DELAY (fixed):
8
+ * - Previous: using networkidle wait after every action
9
+ * - Fix: Playwright's selectOption() is synchronous once visible.
10
+ * We waitFor visible then immediately selectOption. No extra waits.
11
+ *
12
+ * Also supports:
13
+ * - Custom dropdowns (non-<select>) via click-then-click pattern
14
+ * - Multi-select
15
+ * - Autocomplete / combobox
16
+ */
17
+ export declare class DropdownHandler extends BaseHandler {
18
+ constructor(tConfig: TestCaseConfig, page: Page);
19
+ getActions(): {
20
+ selectdropdown: (args: string[], slabel?: string) => Promise<ActionResponse>;
21
+ selectMuiDropdown: (args: string[], slabel?: string) => Promise<ActionResponse>;
22
+ selectbyindex: (args: string[], slabel?: string) => Promise<ActionResponse>;
23
+ selectbyvalue: (args: string[], slabel?: string) => Promise<ActionResponse>;
24
+ multiselect: (args: string[], slabel?: string) => Promise<ActionResponse>;
25
+ getdropdownoptions: (args: string[], slabel?: string) => Promise<ActionResponse>;
26
+ getselectedoption: (args: string[], slabel?: string) => Promise<ActionResponse>;
27
+ selectcustomdropdown: (args: string[], slabel?: string) => Promise<ActionResponse>;
28
+ selectautocomplete: (args: string[], slabel?: string) => Promise<ActionResponse>;
29
+ };
30
+ selectMuiDropdown(args: string[], slabel?: string): Promise<ActionResponse>;
31
+ selectDropdown(args: string[], slabel?: string): Promise<ActionResponse>;
32
+ selectByIndex(args: string[], slabel?: string): Promise<ActionResponse>;
33
+ selectByValue(args: string[], slabel?: string): Promise<ActionResponse>;
34
+ multiSelect(args: string[], slabel?: string): Promise<ActionResponse>;
35
+ getDropdownOptions(args: string[], slabel?: string): Promise<ActionResponse>;
36
+ getSelectedOption(args: string[], slabel?: string): Promise<ActionResponse>;
37
+ selectCustomDropdown(args: string[], slabel?: string): Promise<ActionResponse>;
38
+ /**
39
+ * tSetup.selectAutocomplete('xpath', '//input[@id="search"]', 'New York', 'xpath', '//li[text()="New York"]')
40
+ * Types into autocomplete input, waits for suggestion, clicks it
41
+ */
42
+ selectAutocomplete(args: string[], slabel?: string): Promise<ActionResponse>;
43
+ }
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DropdownHandler = void 0;
4
+ const response_1 = require("../../utils/response");
5
+ const locatorHelper_1 = require("../../utils/locatorHelper");
6
+ const BaseHandler_1 = require("./BaseHandler");
7
+ /**
8
+ * DropdownHandler
9
+ * ===============
10
+ * ROOT CAUSE OF DROPDOWN DELAY (fixed):
11
+ * - Previous: using networkidle wait after every action
12
+ * - Fix: Playwright's selectOption() is synchronous once visible.
13
+ * We waitFor visible then immediately selectOption. No extra waits.
14
+ *
15
+ * Also supports:
16
+ * - Custom dropdowns (non-<select>) via click-then-click pattern
17
+ * - Multi-select
18
+ * - Autocomplete / combobox
19
+ */
20
+ class DropdownHandler extends BaseHandler_1.BaseHandler {
21
+ constructor(tConfig, page) { super(tConfig, page); }
22
+ getActions() {
23
+ return {
24
+ selectdropdown: this.selectDropdown.bind(this),
25
+ selectMuiDropdown: this.selectMuiDropdown.bind(this),
26
+ selectbyindex: this.selectByIndex.bind(this),
27
+ selectbyvalue: this.selectByValue.bind(this),
28
+ multiselect: this.multiSelect.bind(this),
29
+ getdropdownoptions: this.getDropdownOptions.bind(this),
30
+ getselectedoption: this.getSelectedOption.bind(this),
31
+ selectcustomdropdown: this.selectCustomDropdown.bind(this),
32
+ selectautocomplete: this.selectAutocomplete.bind(this),
33
+ };
34
+ }
35
+ async selectMuiDropdown(args, slabel) {
36
+ const [strategy, locator, value] = args;
37
+ const displayLabel = slabel || "unknown";
38
+ if (!strategy || !locator || !value) {
39
+ return (0, response_1.fail)("selectMuiDropdown needs: strategy, locator, value", "Missing args");
40
+ }
41
+ const ls = (0, locatorHelper_1.buildLocatorString)(strategy, locator);
42
+ try {
43
+ const dropdown = this.page.locator(ls);
44
+ await dropdown.waitFor({ state: "visible", timeout: this.timeout });
45
+ await this.highlight(ls, "select", `Opening dropdown`);
46
+ await dropdown.click();
47
+ const option = this.page.locator(`//li[normalize-space()="${value}"]`);
48
+ await option.waitFor({ state: "visible", timeout: this.timeout });
49
+ await option.click();
50
+ await this.unhighlight();
51
+ const sc = await this.shots.onPass(this.page);
52
+ return (0, response_1.pass)(`Selected "${value}" from ${displayLabel}`, sc, { expected_result: `"${value}" selected successfully in "${displayLabel}"` });
53
+ }
54
+ catch (error) {
55
+ await this.unhighlight();
56
+ const sc = await this.shots.onFail(this.page);
57
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
58
+ const errorMsg = isNotFound
59
+ ? `"${displayLabel}" not found`
60
+ : `Failed selectMuiDropdown "${value}" in ${displayLabel} — ${error.message}`;
61
+ return (0, response_1.fail)(errorMsg, undefined, sc, { expected_result: `"${value}" selected successfully in "${displayLabel}"` });
62
+ }
63
+ }
64
+ // tSetup.selectDropdown('xpath', '//select[...]', 'Option Label')
65
+ // ✅ OPTIMIZED: no networkidle, just waitFor visible then selectOption immediately
66
+ async selectDropdown(args, slabel) {
67
+ const [strategy, locator, value] = args;
68
+ const displayLabel = slabel || "unknown";
69
+ if (!strategy || !locator || !value) {
70
+ return (0, response_1.fail)("selectDropdown needs: strategy, locator, visibleText", "Missing args");
71
+ }
72
+ const ls = (0, locatorHelper_1.buildLocatorString)(strategy, locator);
73
+ try {
74
+ const el = this.page.locator(ls);
75
+ await el.waitFor({ state: "visible", timeout: this.timeout });
76
+ // ✅ Highlight before action
77
+ await this.highlight(ls, "select", `Selecting: "${value}"`);
78
+ const byLabel = el.selectOption({ label: value }, { timeout: this.timeout });
79
+ const byValue = el.selectOption({ value }, { timeout: this.timeout });
80
+ const byPartialText = (async () => {
81
+ const options = await el.locator("option").all();
82
+ for (const opt of options) {
83
+ const txt = (await opt.textContent() ?? "").trim();
84
+ if (txt.toLowerCase().includes(value.toLowerCase())) {
85
+ const val = await opt.getAttribute("value");
86
+ if (!val)
87
+ throw new Error(`Option "${value}" has no value`);
88
+ return el.selectOption({ value: val }, { timeout: this.timeout });
89
+ }
90
+ }
91
+ throw new Error(`Option "${value}" not found`);
92
+ })();
93
+ await Promise.any([byLabel, byValue, byPartialText]);
94
+ await this.unhighlight();
95
+ const sc = await this.shots.onPass(this.page);
96
+ return (0, response_1.pass)(`Selected "${value}" from ${displayLabel}`, sc, { expected_result: `"${value}" selected successfully in "${displayLabel}"` });
97
+ }
98
+ catch (error) {
99
+ await this.unhighlight();
100
+ const sc = await this.shots.onFail(this.page);
101
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
102
+ const errorMsg = isNotFound
103
+ ? `"${displayLabel}" not found`
104
+ : `Failed selectDropdown "${value}" in ${displayLabel} — ${error.message}`;
105
+ return (0, response_1.fail)(errorMsg, undefined, sc, { expected_result: `"${value}" selected successfully in "${displayLabel}"` });
106
+ }
107
+ }
108
+ // tSetup.selectByIndex('xpath', '//select[...]', '2')
109
+ async selectByIndex(args, slabel) {
110
+ const [strategy, locator, indexStr] = args;
111
+ const displayLabel = slabel || "unknown";
112
+ const index = parseInt(indexStr, 10);
113
+ if (!strategy || !locator || isNaN(index)) {
114
+ return (0, response_1.fail)("selectByIndex needs: strategy, locator, index", "Missing args");
115
+ }
116
+ const ls = (0, locatorHelper_1.buildLocatorString)(strategy, locator);
117
+ try {
118
+ const el = this.page.locator(ls);
119
+ await el.waitFor({ state: "visible", timeout: this.timeout });
120
+ await this.highlight(ls, "select", `Selecting index: ${index}`);
121
+ await el.selectOption({ index }, { timeout: this.timeout });
122
+ await this.unhighlight();
123
+ const sc = await this.shots.onPass(this.page);
124
+ return (0, response_1.pass)(`Selected index ${index} in ${displayLabel}`, sc, { expected_result: `Index ${index} selected successfully in "${displayLabel}"` });
125
+ }
126
+ catch (error) {
127
+ await this.unhighlight();
128
+ const sc = await this.shots.onFail(this.page);
129
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
130
+ const errorMsg = isNotFound
131
+ ? `"${displayLabel}" not found`
132
+ : `Failed selectByIndex ${index} in ${displayLabel} — ${error.message}`;
133
+ return (0, response_1.fail)(errorMsg, undefined, sc);
134
+ }
135
+ }
136
+ async selectByValue(args, slabel) {
137
+ const [strategy, locator, value] = args;
138
+ const displayLabel = slabel || "unknown";
139
+ if (!strategy || !locator || !value) {
140
+ return (0, response_1.fail)("selectByValue needs: strategy, locator, value", "Missing args");
141
+ }
142
+ const ls = (0, locatorHelper_1.buildLocatorString)(strategy, locator);
143
+ try {
144
+ const el = this.page.locator(ls);
145
+ await el.waitFor({ state: "visible", timeout: this.timeout });
146
+ await this.highlight(ls, "select", `Selecting value: "${value}"`);
147
+ await el.selectOption({ value }, { timeout: this.timeout });
148
+ await this.unhighlight();
149
+ const sc = await this.shots.onPass(this.page);
150
+ return (0, response_1.pass)(`Selected value "${value}" in ${displayLabel}`, sc, { expected_result: `"${value}" selected successfully in "${displayLabel}"` });
151
+ }
152
+ catch (error) {
153
+ await this.unhighlight();
154
+ const sc = await this.shots.onFail(this.page);
155
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
156
+ const errorMsg = isNotFound
157
+ ? `"${displayLabel}" not found`
158
+ : `Failed selectByValue "${value}" in ${displayLabel} — ${error.message}`;
159
+ return (0, response_1.fail)(errorMsg, undefined, sc);
160
+ }
161
+ }
162
+ async multiSelect(args, slabel) {
163
+ const [strategy, locator, ...values] = args;
164
+ const displayLabel = slabel || "unknown";
165
+ if (!strategy || !locator || values.length === 0) {
166
+ return (0, response_1.fail)("multiSelect needs: strategy, locator, ...values", "Missing args");
167
+ }
168
+ const ls = (0, locatorHelper_1.buildLocatorString)(strategy, locator);
169
+ try {
170
+ const el = this.page.locator(ls);
171
+ await el.waitFor({ state: "visible", timeout: this.timeout });
172
+ await this.highlight(ls, "select", `Selecting: ${values.join(", ")}`);
173
+ await el.selectOption(values.map(v => ({ label: v })), { timeout: this.timeout });
174
+ await this.unhighlight();
175
+ const sc = await this.shots.onPass(this.page);
176
+ return (0, response_1.pass)(`Multi-selected [${values.join(", ")}] in ${displayLabel}`, sc, { expected_result: `Values [${values.join(", ")}] selected in "${displayLabel}"` });
177
+ }
178
+ catch (error) {
179
+ await this.unhighlight();
180
+ const sc = await this.shots.onFail(this.page);
181
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
182
+ const errorMsg = isNotFound
183
+ ? `"${displayLabel}" not found`
184
+ : `Failed multiSelect in ${displayLabel} — ${error.message}`;
185
+ return (0, response_1.fail)(errorMsg, undefined, sc);
186
+ }
187
+ }
188
+ async getDropdownOptions(args, slabel) {
189
+ const [strategy, locator, storeKey] = args;
190
+ const displayLabel = slabel || "unknown";
191
+ if (!strategy || !locator) {
192
+ return (0, response_1.fail)("getDropdownOptions needs: strategy, locator", "Missing args");
193
+ }
194
+ try {
195
+ const el = this.page.locator((0, locatorHelper_1.buildLocatorString)(strategy, locator));
196
+ await el.waitFor({ state: "attached", timeout: this.timeout });
197
+ const texts = await el.locator("option").allTextContents();
198
+ if (storeKey)
199
+ this.testData.set(storeKey, texts);
200
+ const sc = await this.shots.onPass(this.page);
201
+ return (0, response_1.pass)(`Options: [${texts.join(", ")}] in ${displayLabel}`, sc, { options: texts });
202
+ }
203
+ catch (error) {
204
+ const sc = await this.shots.onFail(this.page);
205
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
206
+ const errorMsg = isNotFound
207
+ ? `"${displayLabel}" not found`
208
+ : `Failed getDropdownOptions in ${displayLabel} — ${error.message}`;
209
+ return (0, response_1.fail)(errorMsg, undefined, sc);
210
+ }
211
+ }
212
+ async getSelectedOption(args, slabel) {
213
+ const [strategy, locator, storeKey] = args;
214
+ const displayLabel = slabel || "unknown";
215
+ if (!strategy || !locator) {
216
+ return (0, response_1.fail)("getSelectedOption needs: strategy, locator", "Missing args");
217
+ }
218
+ try {
219
+ const el = this.page.locator((0, locatorHelper_1.buildLocatorString)(strategy, locator));
220
+ await el.waitFor({ state: "attached", timeout: this.timeout });
221
+ const text = ((await el.locator("option:checked").textContent()) ?? "").trim();
222
+ if (storeKey)
223
+ this.testData.set(storeKey, text);
224
+ const sc = await this.shots.onPass(this.page);
225
+ return (0, response_1.pass)(`Selected: "${text}" in ${displayLabel}`, sc, { selected: text });
226
+ }
227
+ catch (error) {
228
+ const sc = await this.shots.onFail(this.page);
229
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
230
+ const errorMsg = isNotFound
231
+ ? `"${displayLabel}" not found`
232
+ : `Failed getSelectedOption in ${displayLabel} — ${error.message}`;
233
+ return (0, response_1.fail)(errorMsg, undefined, sc);
234
+ }
235
+ }
236
+ async selectCustomDropdown(args, slabel) {
237
+ const [ts, tl, os, ol] = args;
238
+ const displayLabel = slabel || "unknown";
239
+ if (!ts || !tl || !os || !ol) {
240
+ return (0, response_1.fail)("selectCustomDropdown needs locators", "Missing args");
241
+ }
242
+ try {
243
+ const trigger = this.page.locator((0, locatorHelper_1.buildLocatorString)(ts, tl));
244
+ await trigger.waitFor({ state: "visible", timeout: this.timeout });
245
+ await this.highlight((0, locatorHelper_1.buildLocatorString)(ts, tl), "select", "Opening dropdown");
246
+ await trigger.click();
247
+ const option = this.page.locator((0, locatorHelper_1.buildLocatorString)(os, ol));
248
+ await option.waitFor({ state: "visible", timeout: this.timeout });
249
+ await option.click();
250
+ await this.unhighlight();
251
+ const sc = await this.shots.onPass(this.page);
252
+ return (0, response_1.pass)(`Custom dropdown selected in ${displayLabel}`, sc);
253
+ }
254
+ catch (error) {
255
+ await this.unhighlight();
256
+ const sc = await this.shots.onFail(this.page);
257
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
258
+ const errorMsg = isNotFound
259
+ ? `"${displayLabel}" not found`
260
+ : `Failed selectCustomDropdown in ${displayLabel} — ${error.message}`;
261
+ return (0, response_1.fail)(errorMsg, undefined, sc);
262
+ }
263
+ }
264
+ /**
265
+ * tSetup.selectAutocomplete('xpath', '//input[@id="search"]', 'New York', 'xpath', '//li[text()="New York"]')
266
+ * Types into autocomplete input, waits for suggestion, clicks it
267
+ */
268
+ async selectAutocomplete(args, slabel) {
269
+ const [is, il, text, os, ol] = args;
270
+ const displayLabel = slabel || "unknown";
271
+ if (!is || !il || !text) {
272
+ return (0, response_1.fail)("selectAutocomplete needs input locator & text", "Missing args");
273
+ }
274
+ try {
275
+ const input = this.page.locator((0, locatorHelper_1.buildLocatorString)(is, il));
276
+ await input.waitFor({ state: "visible", timeout: this.timeout });
277
+ await this.highlight((0, locatorHelper_1.buildLocatorString)(is, il), "input", `Typing: "${text}"`);
278
+ await input.clear();
279
+ await input.pressSequentially(text, { delay: 80 });
280
+ if (os && ol) {
281
+ const option = this.page.locator((0, locatorHelper_1.buildLocatorString)(os, ol));
282
+ await option.waitFor({ state: "visible", timeout: this.timeout });
283
+ await option.click();
284
+ }
285
+ else {
286
+ await input.press("Enter");
287
+ }
288
+ await this.unhighlight();
289
+ const sc = await this.shots.onPass(this.page);
290
+ return (0, response_1.pass)(`Autocomplete selected: "${text}"`, sc);
291
+ }
292
+ catch (error) {
293
+ await this.unhighlight();
294
+ const sc = await this.shots.onFail(this.page);
295
+ const isNotFound = /timeout|waiting for locator|not visible|not found/i.test(error.message);
296
+ const errorMsg = isNotFound
297
+ ? `"${displayLabel}" not found`
298
+ : `Failed selectAutocomplete "${text}" — ${error.message}`;
299
+ return (0, response_1.fail)(errorMsg, undefined, sc);
300
+ }
301
+ }
302
+ }
303
+ exports.DropdownHandler = DropdownHandler;
304
+ //# sourceMappingURL=DropdownHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownHandler.js","sourceRoot":"","sources":["../../../src/core/handlers/DropdownHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Page } from "playwright";
2
+ import { ActionResponse, TestCaseConfig } from "../../types/types";
3
+ import { BaseHandler } from "./BaseHandler";
4
+ export declare class InputHandler extends BaseHandler {
5
+ constructor(tConfig: TestCaseConfig, page: Page);
6
+ getActions(): {
7
+ entertext: (args: string[], label?: string) => Promise<ActionResponse>;
8
+ typetext: (args: string[], label?: string) => Promise<ActionResponse>;
9
+ cleartext: (args: string[], label?: string) => Promise<ActionResponse>;
10
+ appendtext: (args: string[], label?: string) => Promise<ActionResponse>;
11
+ getinputvalue: (args: string[], label?: string) => Promise<ActionResponse>;
12
+ setinputvalue: (args: string[], label?: string) => Promise<ActionResponse>;
13
+ uploadfile: (args: string[], label?: string) => Promise<ActionResponse>;
14
+ enteriframe: (args: string[], label?: string) => Promise<ActionResponse>;
15
+ };
16
+ enterText(args: string[], label?: string): Promise<ActionResponse>;
17
+ typeText(args: string[], label?: string): Promise<ActionResponse>;
18
+ clearText(args: string[], label?: string): Promise<ActionResponse>;
19
+ appendText(args: string[], label?: string): Promise<ActionResponse>;
20
+ getInputValue(args: string[], label?: string): Promise<ActionResponse>;
21
+ setInputValueByJS(args: string[], label?: string): Promise<ActionResponse>;
22
+ uploadFile(args: string[], label?: string): Promise<ActionResponse>;
23
+ enterTextInFrame(args: string[], label?: string): Promise<ActionResponse>;
24
+ }