vasu-playwright-utils 1.22.1 → 1.23.0

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.
package/README.md CHANGED
@@ -13,6 +13,7 @@
13
13
 
14
14
  - [Installation](#installation)
15
15
  - [Usage](#usage)
16
+ - [ESLint](#eslint)
16
17
  - [License](#license)
17
18
 
18
19
  ## Installation
@@ -33,6 +34,53 @@ import { click, fill } from 'vasu-playwright-utils';
33
34
  // Your code here
34
35
  ```
35
36
 
37
+ ## ESLint
38
+
39
+ This library ships a shareable ESLint config for Playwright TypeScript projects. Install the library (it includes the required ESLint plugins), then extend the config in your project and override any rules as needed.
40
+
41
+ ### Using the config
42
+
43
+ 1. Use **ESLint 9 flat config** (`eslint.config.js` at your project root).
44
+
45
+ 2. In your `eslint.config.js`, spread the library config:
46
+
47
+ ```javascript
48
+ const playwrightLibConfig = require('vasu-playwright-utils/eslint');
49
+
50
+ module.exports = [...playwrightLibConfig];
51
+ ```
52
+
53
+ 3. Ensure your project has a `tsconfig.json` at the root (the config uses it for TypeScript parsing).
54
+
55
+ ### Overriding rules
56
+
57
+ Add config objects after the spread to override or relax rules:
58
+
59
+ ```javascript
60
+ const playwrightLibConfig = require('vasu-playwright-utils/eslint');
61
+
62
+ module.exports = [
63
+ ...playwrightLibConfig,
64
+ // Override specific rules
65
+ {
66
+ rules: {
67
+ 'playwright/no-focused-test': 'warn',
68
+ 'playwright/no-wait-for-timeout': 'off',
69
+ 'no-console': 'off',
70
+ },
71
+ },
72
+ // Or override only for certain files
73
+ {
74
+ files: ['tests/**/*.ts'],
75
+ rules: {
76
+ 'playwright/expect-expect': 'error',
77
+ },
78
+ },
79
+ ];
80
+ ```
81
+
82
+ Later entries in the config array override earlier ones, so your overrides take precedence.
83
+
36
84
  ## Issues and Feedback
37
85
 
38
86
  If you encounter any issues or have feedback, please [Raise an Issue](https://github.com/vasu31dev/playwright-ts-lib/issues) on GitHub.
@@ -160,11 +160,22 @@ export declare function dragAndDrop(input: string | Locator, dest: string | Loca
160
160
  */
161
161
  export declare function doubleClick(input: string | Locator, options?: DoubleClickOptions): Promise<void>;
162
162
  /**
163
- * Downloads a file from a specified element.
164
- * @param {string | Locator} input - The element to download the file from.
165
- * @param {string} path - The path to save the downloaded file to.
166
- */
167
- export declare function downloadFile(input: string | Locator, path: string, options?: ClickOptions): Promise<void>;
163
+ * Triggers a file download by clicking the given element and saves the file to `savePath`.
164
+ *
165
+ * Uses `saveAs()` only (no `download.path()`), so it works locally and when connecting
166
+ * to a remote browser (e.g. Docker or cloud).
167
+ *
168
+ * @param {string | Locator} input - Selector or locator for the element that starts the download (e.g. download button).
169
+ * @param {string} savePath - Full path where the file should be saved along with file extension
170
+ * @returns {Promise<string>}The suggested filename from the response, or the last segment of `savePath` if empty. Use for assertions or logging.
171
+ * @throws If the element is not found, the click fails, the download fails, or save fails.
172
+ * @example
173
+ * const filename = await downloadFile('#download-btn', '/tmp/report.pdf');
174
+ * expect(filename).toBe('report.pdf');
175
+ *
176
+ * const filename = await downloadFile(myLocator, path.join(downloadDir, 'file.zip'), { timeout: 30000 });
177
+ */
178
+ export declare function downloadFile(input: string | Locator, savePath: string, options?: ClickOptions): Promise<string>;
168
179
  /**
169
180
  * Uploads files to a specified element.
170
181
  * @param {string | Locator} input - The element to upload files to.
@@ -1 +1 @@
1
- {"version":3,"file":"action-utils.d.ts","sourceRoot":"","sources":["../../../../src/vasu-playwright-lib/utils/action-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-utils.d.ts","sourceRoot":"","sources":["../../../../src/vasu-playwright-lib/utils/action-utils.ts"],"names":[],"mappings":"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"}
@@ -403,20 +403,34 @@ function doubleClick(input, options) {
403
403
  });
404
404
  }
405
405
  /**
406
- * Downloads a file from a specified element.
407
- * @param {string | Locator} input - The element to download the file from.
408
- * @param {string} path - The path to save the downloaded file to.
406
+ * Triggers a file download by clicking the given element and saves the file to `savePath`.
407
+ *
408
+ * Uses `saveAs()` only (no `download.path()`), so it works locally and when connecting
409
+ * to a remote browser (e.g. Docker or cloud).
410
+ *
411
+ * @param {string | Locator} input - Selector or locator for the element that starts the download (e.g. download button).
412
+ * @param {string} savePath - Full path where the file should be saved along with file extension
413
+ * @returns {Promise<string>}The suggested filename from the response, or the last segment of `savePath` if empty. Use for assertions or logging.
414
+ * @throws If the element is not found, the click fails, the download fails, or save fails.
415
+ * @example
416
+ * const filename = await downloadFile('#download-btn', '/tmp/report.pdf');
417
+ * expect(filename).toBe('report.pdf');
418
+ *
419
+ * const filename = await downloadFile(myLocator, path.join(downloadDir, 'file.zip'), { timeout: 30000 });
409
420
  */
410
- function downloadFile(input, path, options) {
421
+ function downloadFile(input, savePath, options) {
411
422
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
412
423
  const locator = yield getLocatorWithStableAndVisibleOptions(input, options);
413
424
  const downloadPromise = (0, page_utils_1.getPage)().waitForEvent('download');
414
425
  yield click(locator, options);
415
426
  const download = yield downloadPromise;
416
- // Wait for the download process to complete
417
- console.info(yield download.path());
418
- // Save downloaded file somewhere
419
- yield download.saveAs(path);
427
+ const failure = yield download.failure();
428
+ if (failure) {
429
+ throw new Error(`Download failed: ${failure}`);
430
+ }
431
+ yield download.saveAs(savePath);
432
+ const suggestedFilename = download.suggestedFilename();
433
+ return suggestedFilename;
420
434
  });
421
435
  }
422
436
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"action-utils.js","sourceRoot":"","sources":["../../../../src/vasu-playwright-lib/utils/action-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"action-utils.js","sourceRoot":"","sources":["../../../../src/vasu-playwright-lib/utils/action-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Shareable ESLint config for Playwright TypeScript projects.
3
+ * Single source of truth: used by this repo (via eslint.config.js) and by consumers (vasu-playwright-utils/eslint).
4
+ *
5
+ * @example
6
+ * // eslint.config.js (in your project)
7
+ * const playwrightLibConfig = require('vasu-playwright-utils/eslint');
8
+ * module.exports = [
9
+ * ...playwrightLibConfig,
10
+ * { rules: { 'playwright/no-focused-test': 'warn' } },
11
+ * ];
12
+ */
13
+
14
+ const typescript = require('@typescript-eslint/eslint-plugin');
15
+ const typescriptParser = require('@typescript-eslint/parser');
16
+ const prettier = require('eslint-plugin-prettier');
17
+ const importPlugin = require('eslint-plugin-import');
18
+ const jsdoc = require('eslint-plugin-jsdoc');
19
+ const playwright = require('eslint-plugin-playwright');
20
+ const js = require('@eslint/js');
21
+
22
+ // Works in this repo and when required from other projects (consumer's cwd)
23
+ const projectRoot = require('process').cwd();
24
+
25
+ module.exports = [
26
+ {
27
+ ignores: [
28
+ 'node_modules/**',
29
+ 'dist/**',
30
+ 'build/**',
31
+ 'coverage/**',
32
+ '.husky/**',
33
+ '**/*.js',
34
+ 'package-lock.json',
35
+ ],
36
+ },
37
+ js.configs.recommended,
38
+ {
39
+ files: ['**/*.ts'],
40
+ languageOptions: {
41
+ parser: typescriptParser,
42
+ parserOptions: {
43
+ project: './tsconfig.json',
44
+ tsconfigRootDir: projectRoot,
45
+ },
46
+ globals: {
47
+ console: 'readonly',
48
+ process: 'readonly',
49
+ Buffer: 'readonly',
50
+ __dirname: 'readonly',
51
+ __filename: 'readonly',
52
+ global: 'readonly',
53
+ module: 'readonly',
54
+ require: 'readonly',
55
+ exports: 'readonly',
56
+ },
57
+ },
58
+ plugins: {
59
+ '@typescript-eslint': typescript,
60
+ prettier,
61
+ import: importPlugin,
62
+ jsdoc,
63
+ playwright,
64
+ },
65
+ settings: { 'import/resolver': { typescript: { alwaysTryTypes: true } } },
66
+ rules: {
67
+ // Prettier Rules
68
+ 'prettier/prettier': 'error',
69
+ 'no-trailing-spaces': 'error',
70
+ 'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }],
71
+ 'eol-last': ['error', 'always'],
72
+
73
+ // TypeScript Rules - Base
74
+ ...typescript.configs['eslint-recommended'].overrides[0].rules,
75
+ ...typescript.configs.recommended.rules,
76
+ '@typescript-eslint/no-unsafe-assignment': 'warn',
77
+ '@typescript-eslint/no-unsafe-member-access': 'warn',
78
+ '@typescript-eslint/no-unsafe-return': 'warn',
79
+ '@typescript-eslint/no-unsafe-call': 'warn',
80
+ '@typescript-eslint/no-floating-promises': 'error',
81
+ '@typescript-eslint/no-unnecessary-type-assertion': 'error',
82
+ '@typescript-eslint/no-explicit-any': 'warn',
83
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
84
+
85
+ // TypeScript Rules - Additional Strict Rules
86
+ '@typescript-eslint/no-unused-vars': [
87
+ 'error',
88
+ { argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
89
+ ],
90
+ '@typescript-eslint/no-unused-expressions': 'error',
91
+ '@typescript-eslint/no-empty-function': 'warn',
92
+ '@typescript-eslint/prefer-nullish-coalescing': 'error',
93
+ '@typescript-eslint/prefer-optional-chain': 'error',
94
+ '@typescript-eslint/prefer-as-const': 'error',
95
+ '@typescript-eslint/no-non-null-assertion': 'warn',
96
+ '@typescript-eslint/no-duplicate-enum-values': 'error',
97
+ '@typescript-eslint/no-inferrable-types': [
98
+ 'error',
99
+ { ignoreParameters: false, ignoreProperties: false },
100
+ ],
101
+
102
+ // Import Rules
103
+ 'import/no-unresolved': 'error',
104
+ 'import/named': 'error',
105
+ 'import/default': 'error',
106
+ 'import/no-absolute-path': 'error',
107
+ 'import/no-self-import': 'error',
108
+ 'import/first': 'error',
109
+ 'import/no-mutable-exports': 'error',
110
+ 'sort-imports': ['error', { ignoreDeclarationSort: true }],
111
+
112
+ // General Rules - Best Practices
113
+ 'require-await': 'off',
114
+ '@typescript-eslint/require-await': 'error',
115
+ '@typescript-eslint/await-thenable': 'error',
116
+ '@typescript-eslint/no-misused-promises': 'error',
117
+ complexity: ['warn', { max: 11 }],
118
+ 'no-console': ['warn', { allow: ['warn', 'error', 'info'] }],
119
+ 'no-debugger': 'error',
120
+ 'no-var': 'error',
121
+ 'prefer-const': 'error',
122
+ 'prefer-template': 'error',
123
+ 'object-shorthand': 'error',
124
+ 'no-lonely-if': 'error',
125
+ 'no-useless-return': 'error',
126
+ 'no-nested-ternary': 'warn',
127
+ eqeqeq: ['error', 'always', { null: 'ignore' }],
128
+ 'no-throw-literal': 'error',
129
+
130
+ // JSDoc Rules
131
+ 'jsdoc/check-alignment': 'off',
132
+ 'jsdoc/check-indentation': 'off',
133
+
134
+ // Playwright recommended rules
135
+ ...playwright.configs['playwright-test'].rules,
136
+
137
+ // Playwright Rules
138
+ 'playwright/missing-playwright-await': 'error',
139
+ 'playwright/no-focused-test': 'error',
140
+ 'playwright/valid-expect': 'error',
141
+ 'playwright/prefer-web-first-assertions': 'error',
142
+ 'playwright/no-useless-await': 'error',
143
+ 'playwright/no-page-pause': 'error',
144
+ 'playwright/no-element-handle': 'error',
145
+ 'playwright/no-eval': 'error',
146
+ 'playwright/prefer-to-be': 'error',
147
+ 'playwright/prefer-to-contain': 'error',
148
+ 'playwright/prefer-to-have-length': 'error',
149
+ 'playwright/no-wait-for-timeout': 'warn',
150
+ 'playwright/no-useless-not': 'warn',
151
+ 'playwright/require-top-level-describe': 'off',
152
+ 'playwright/expect-expect': 'off',
153
+ 'playwright/no-conditional-in-test': 'off',
154
+ 'playwright/no-skipped-test': 'off',
155
+ 'playwright/consistent-spacing-between-blocks': 'off',
156
+ },
157
+ },
158
+ ];
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "vasu-playwright-utils",
3
- "version": "1.22.1",
3
+ "version": "1.23.0",
4
4
  "description": "Playwright Typescript Library with reusable utilities",
5
5
  "main": "./dist/src/vasu-playwright-lib/index.js",
6
6
  "types": "./dist/src/vasu-playwright-lib/index.d.ts",
7
7
  "exports": {
8
8
  ".": "./dist/src/vasu-playwright-lib/index.js",
9
+ "./eslint": "./eslint.config.base.js",
9
10
  "./action-utils": "./dist/src/vasu-playwright-lib/utils/action-utils.js",
10
11
  "./assert-utils": "./dist/src/vasu-playwright-lib/utils/assert-utils.js",
11
12
  "./element-utils": "./dist/src/vasu-playwright-lib/utils/element-utils.js",
@@ -40,29 +41,30 @@
40
41
  },
41
42
  "files": [
42
43
  "dist",
43
- "src"
44
+ "src",
45
+ "eslint.config.base.js"
44
46
  ],
45
47
  "engines": {
46
- "node": ">=18.0.0"
48
+ "node": ">=20.0.0"
47
49
  },
48
50
  "dependencies": {
49
51
  "@eslint/js": "^9.39.2",
50
- "@types/node": "^25.2.2",
51
- "@typescript-eslint/eslint-plugin": "^8.55.0",
52
- "@typescript-eslint/parser": "^8.55.0",
52
+ "@types/node": "^25.3.1",
53
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
54
+ "@typescript-eslint/parser": "^8.56.1",
53
55
  "cross-env": "^10.1.0",
54
- "dotenv": "^17.2.4",
55
- "eslint": "^9.39.2",
56
+ "dotenv": "^17.3.1",
57
+ "eslint": "^9.39.3",
56
58
  "eslint-config-prettier": "^10.1.8",
57
59
  "eslint-import-resolver-typescript": "^4.4.4",
58
60
  "eslint-plugin-import": "^2.32.0",
59
- "eslint-plugin-jsdoc": "^62.5.4",
60
- "eslint-plugin-playwright": "^2.5.1",
61
+ "eslint-plugin-jsdoc": "^62.7.1",
62
+ "eslint-plugin-playwright": "^2.7.1",
61
63
  "eslint-plugin-prettier": "^5.5.5",
62
64
  "husky": "^9.1.7",
63
65
  "lint-staged": "^16.2.7",
64
66
  "prettier": "^3.8.1",
65
- "rimraf": "^6.1.2",
67
+ "rimraf": "^6.1.3",
66
68
  "tslib": "^2.8.1",
67
69
  "typescript": "5.9.3",
68
70
  "winston": "^3.19.0"
@@ -401,19 +401,35 @@ export async function doubleClick(input: string | Locator, options?: DoubleClick
401
401
  }
402
402
 
403
403
  /**
404
- * Downloads a file from a specified element.
405
- * @param {string | Locator} input - The element to download the file from.
406
- * @param {string} path - The path to save the downloaded file to.
404
+ * Triggers a file download by clicking the given element and saves the file to `savePath`.
405
+ *
406
+ * Uses `saveAs()` only (no `download.path()`), so it works locally and when connecting
407
+ * to a remote browser (e.g. Docker or cloud).
408
+ *
409
+ * @param {string | Locator} input - Selector or locator for the element that starts the download (e.g. download button).
410
+ * @param {string} savePath - Full path where the file should be saved along with file extension
411
+ * @returns {Promise<string>}The suggested filename from the response, or the last segment of `savePath` if empty. Use for assertions or logging.
412
+ * @throws If the element is not found, the click fails, the download fails, or save fails.
413
+ * @example
414
+ * const filename = await downloadFile('#download-btn', '/tmp/report.pdf');
415
+ * expect(filename).toBe('report.pdf');
416
+ *
417
+ * const filename = await downloadFile(myLocator, path.join(downloadDir, 'file.zip'), { timeout: 30000 });
407
418
  */
408
- export async function downloadFile(input: string | Locator, path: string, options?: ClickOptions): Promise<void> {
419
+ export async function downloadFile(input: string | Locator, savePath: string, options?: ClickOptions): Promise<string> {
409
420
  const locator = await getLocatorWithStableAndVisibleOptions(input, options);
410
421
  const downloadPromise = getPage().waitForEvent('download');
411
422
  await click(locator, options);
412
423
  const download = await downloadPromise;
413
- // Wait for the download process to complete
414
- console.info(await download.path());
415
- // Save downloaded file somewhere
416
- await download.saveAs(path);
424
+
425
+ const failure = await download.failure();
426
+ if (failure) {
427
+ throw new Error(`Download failed: ${failure}`);
428
+ }
429
+
430
+ await download.saveAs(savePath);
431
+ const suggestedFilename = download.suggestedFilename();
432
+ return suggestedFilename;
417
433
  }
418
434
 
419
435
  /**