eslint-plugin-wdio
Advanced tools
Comparing version 7.17.3 to 7.17.4
@@ -16,3 +16,7 @@ declare const rules: { | ||
}; | ||
rules: {}; | ||
rules: { | ||
'await-expect': import("eslint").Rule.RuleModule; | ||
'no-debug': import("eslint").Rule.RuleModule; | ||
'no-pause': import("eslint").Rule.RuleModule; | ||
}; | ||
}; | ||
@@ -19,0 +23,0 @@ }; |
@@ -26,6 +26,5 @@ "use strict"; | ||
}, | ||
rules: {} | ||
rules | ||
} | ||
}; | ||
exports.configs = configs; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsd0VBQThDO0FBQzlDLGdFQUEwQztBQUMxQyxnRUFBMEM7QUFFMUMsTUFBTSxLQUFLLEdBQUc7SUFDVixjQUFjLEVBQUcsc0JBQVc7SUFDNUIsVUFBVSxFQUFPLGtCQUFPO0lBQ3hCLFVBQVUsRUFBTyxrQkFBTztDQUMzQixDQUFBO0FBaUJHLHNCQUFLO0FBZlQsTUFBTSxPQUFPLEdBQUc7SUFDWixXQUFXLEVBQUU7UUFDVCxPQUFPLEVBQUU7WUFDTCxDQUFDLEVBQW9CLEtBQUs7WUFDMUIsRUFBRSxFQUFtQixLQUFLO1lBQzFCLE9BQU8sRUFBYyxLQUFLO1lBQzFCLE1BQU0sRUFBZSxLQUFLO1lBQzFCLE1BQU0sRUFBZSxLQUFLO1lBQzFCLGtCQUFrQixFQUFHLEtBQUs7U0FDN0I7UUFDRCxLQUFLLEVBQUcsRUFBRTtLQUNiO0NBQ0osQ0FBQTtBQUlHLDBCQUFPIn0= |
@@ -1,4 +0,4 @@ | ||
import { Rule } from 'eslint'; | ||
import type { Rule } from 'eslint'; | ||
declare const rule: Rule.RuleModule; | ||
export default rule; | ||
//# sourceMappingURL=await-expect.d.ts.map |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const path_1 = __importDefault(require("path")); | ||
const glob_1 = __importDefault(require("glob")); | ||
// Get all the matches in the expect-webdriverio package based on filenames | ||
const expectPath = require.resolve('expect-webdriverio'); | ||
const matchesGlob = path_1.default.resolve(expectPath, '../../lib/matchers/**'); | ||
const matchers = glob_1.default.sync(matchesGlob, { nodir: true, }).map(file => path_1.default.basename(file).replace(/(\.js|\.ts)/, '')); | ||
const constants_1 = require("../constants"); | ||
const rule = { | ||
@@ -28,13 +20,24 @@ meta: { | ||
return { | ||
MemberExpression(node) { | ||
var _a, _b, _c, _d, _e, _f; | ||
const object = (_b = (_a = node.object) === null || _a === void 0 ? void 0 : _a.callee) === null || _b === void 0 ? void 0 : _b.name; | ||
const property = (_c = node.property) === null || _c === void 0 ? void 0 : _c.name; | ||
const parentType = (_f = (_e = (_d = node === null || node === void 0 ? void 0 : node.parent) === null || _d === void 0 ? void 0 : _d.parent) === null || _e === void 0 ? void 0 : _e.type) !== null && _f !== void 0 ? _f : false; | ||
if (object === 'expect' && matchers.includes(property) && parentType !== 'AwaitExpression') { | ||
context.report({ | ||
node, | ||
messageId: 'missingAwait', | ||
}); | ||
CallExpression(node) { | ||
/** | ||
* validate we have an expect statement that | ||
* calls some of the WebdriverIO matchers | ||
*/ | ||
if (node.callee.type !== 'MemberExpression' || | ||
node.callee.object.type !== 'CallExpression' || | ||
node.callee.object.callee.name !== 'expect' || | ||
!constants_1.MATCHERS.includes(node.callee.property.name)) { | ||
return; | ||
} | ||
/** | ||
* fail rule if: | ||
*/ | ||
if ( | ||
/** | ||
* expect is called without an `await` and as part of an | ||
* expression | ||
*/ | ||
node.parent.type === 'ExpressionStatement') { | ||
context.report({ node, messageId: 'missingAwait' }); | ||
} | ||
} | ||
@@ -45,2 +48,1 @@ }; | ||
exports.default = rule; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdhaXQtZXhwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL3J1bGVzL2F3YWl0LWV4cGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF1QjtBQUN2QixnREFBdUI7QUFHdkIsMkVBQTJFO0FBQzNFLE1BQU0sVUFBVSxHQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtBQUN6RCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxDQUFBO0FBQ3JFLE1BQU0sUUFBUSxHQUFNLGNBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksR0FBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFFekgsTUFBTSxJQUFJLEdBQW9CO0lBQzFCLElBQUksRUFBRztRQUNILElBQUksRUFBRyxTQUFTO1FBQ2hCLElBQUksRUFBRztZQUNILFdBQVcsRUFBRyxvQ0FBb0M7WUFDbEQsUUFBUSxFQUFNLGlCQUFpQjtZQUMvQixHQUFHLEVBQVcsdUZBQXVGO1lBQ3JHLFdBQVcsRUFBRyxLQUFLO1NBQ3RCO1FBQ0QsUUFBUSxFQUFHO1lBQ1AsWUFBWSxFQUFHLDBDQUEwQztTQUM1RDtRQUNELGNBQWMsRUFBRyxJQUFJO0tBQ3hCO0lBRUQsTUFBTSxFQUFHLFVBQVMsT0FBeUI7UUFDdkMsT0FBTztZQUNILGdCQUFnQixDQUFDLElBQVM7O2dCQUN0QixNQUFNLE1BQU0sR0FBTyxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsTUFBTSwwQ0FBRSxJQUFJLENBQUE7Z0JBQzVDLE1BQU0sUUFBUSxHQUFLLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsSUFBSSxDQUFBO2dCQUN0QyxNQUFNLFVBQVUsR0FBRyxNQUFBLE1BQUEsTUFBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsTUFBTSwwQ0FBRSxNQUFNLDBDQUFFLElBQUksbUNBQUksS0FBSyxDQUFBO2dCQUV0RCxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLEtBQUssaUJBQWlCLEVBQUU7b0JBQ3hGLE9BQU8sQ0FBQyxNQUFNLENBQUM7d0JBQ1gsSUFBSTt3QkFDSixTQUFTLEVBQUcsY0FBYztxQkFDN0IsQ0FBQyxDQUFBO2lCQUNMO1lBQ0wsQ0FBQztTQUNKLENBQUE7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQUVELGtCQUFlLElBQUksQ0FBQSJ9 |
@@ -23,6 +23,3 @@ "use strict"; | ||
if ((0, helpers_1.isCommand)(node, 'debug')) { | ||
context.report({ | ||
node, | ||
messageId: 'unexpectedDebug' | ||
}); | ||
context.report({ node, messageId: 'unexpectedDebug' }); | ||
} | ||
@@ -34,2 +31,1 @@ } | ||
exports.default = rule; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcnVsZXMvbm8tZGVidWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw4Q0FBNEM7QUFFNUMsTUFBTSxJQUFJLEdBQW9CO0lBQzFCLElBQUksRUFBRztRQUNILElBQUksRUFBRyxTQUFTO1FBQ2hCLElBQUksRUFBRztZQUNILFdBQVcsRUFBRyxtQ0FBbUM7WUFDakQsUUFBUSxFQUFNLGlCQUFpQjtZQUMvQixHQUFHLEVBQVcsbUZBQW1GO1lBQ2pHLFdBQVcsRUFBRyxLQUFLO1NBQ3RCO1FBQ0QsUUFBUSxFQUFHO1lBQ1AsZUFBZSxFQUFHLHdDQUF3QztTQUM3RDtRQUNELGNBQWMsRUFBRyxJQUFJO1FBQ3JCLE1BQU0sRUFBRyxFQUFFO0tBQ2Q7SUFFRCxNQUFNLEVBQUcsVUFBUyxPQUF5QjtRQUN2QyxPQUFPO1lBQ0gsY0FBYyxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxJQUFBLG1CQUFTLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO29CQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNYLElBQUk7d0JBQ0osU0FBUyxFQUFHLGlCQUFpQjtxQkFDaEMsQ0FBQyxDQUFBO2lCQUNMO1lBQ0wsQ0FBQztTQUNKLENBQUE7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQUVELGtCQUFlLElBQUksQ0FBQSJ9 |
@@ -23,6 +23,3 @@ "use strict"; | ||
if ((0, helpers_1.isCommand)(node, 'pause')) { | ||
context.report({ | ||
node, | ||
messageId: 'unexpectedPause' | ||
}); | ||
context.report({ node, messageId: 'unexpectedPause' }); | ||
} | ||
@@ -34,2 +31,1 @@ } | ||
exports.default = rule; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcGF1c2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvcnVsZXMvbm8tcGF1c2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw4Q0FBNEM7QUFFNUMsTUFBTSxJQUFJLEdBQW9CO0lBQzFCLElBQUksRUFBRztRQUNILElBQUksRUFBRyxTQUFTO1FBQ2hCLElBQUksRUFBRztZQUNILFdBQVcsRUFBRyxtQ0FBbUM7WUFDakQsUUFBUSxFQUFNLGlCQUFpQjtZQUMvQixHQUFHLEVBQVcsbUZBQW1GO1lBQ2pHLFdBQVcsRUFBRyxLQUFLO1NBQ3RCO1FBQ0QsUUFBUSxFQUFHO1lBQ1AsZUFBZSxFQUFHLHdDQUF3QztTQUM3RDtRQUNELGNBQWMsRUFBRyxJQUFJO1FBQ3JCLE1BQU0sRUFBRyxFQUFFO0tBQ2Q7SUFFRCxNQUFNLEVBQUcsVUFBUyxPQUF5QjtRQUN2QyxPQUFPO1lBQ0gsY0FBYyxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxJQUFBLG1CQUFTLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFO29CQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUNYLElBQUk7d0JBQ0osU0FBUyxFQUFHLGlCQUFpQjtxQkFDaEMsQ0FBQyxDQUFBO2lCQUNMO1lBQ0wsQ0FBQztTQUNKLENBQUE7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQUVELGtCQUFlLElBQUksQ0FBQSJ9 |
@@ -13,2 +13,1 @@ "use strict"; | ||
exports.isCommand = isCommand; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi91dGlscy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyREFBMkQ7OztBQUVwRCxNQUFNLFNBQVMsR0FBRyxVQUFTLFVBQWUsRUFBRSxPQUEwQjs7SUFDekUsTUFBTSxNQUFNLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLE1BQU0sQ0FBQTtJQUVqQyxPQUFPLENBQ0gsTUFBTTtRQUNOLENBQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsTUFBTSwwQ0FBRSxJQUFJLE1BQUssU0FBUztRQUNsQyxDQUFBLE1BQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsMENBQUUsSUFBSSxNQUFLLE9BQU8sQ0FDckMsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQVJZLFFBQUEsU0FBUyxhQVFyQiJ9 |
{ | ||
"name": "eslint-plugin-wdio", | ||
"version": "7.17.3", | ||
"version": "7.17.4", | ||
"description": "Eslint rules for WebdriverIO", | ||
@@ -26,7 +26,7 @@ "author": "Christian Bromann <christian@saucelabs.com>", | ||
}, | ||
"dependencies": { | ||
"expect-webdriverio": "^3.1.4", | ||
"glob": "^7.2.0" | ||
"devDependencies": { | ||
"@types/estree": "^0.0.51", | ||
"eslint": "^8.10.0" | ||
}, | ||
"gitHead": "2bcb589dbdd10ca181f301a269b4dd158faab257" | ||
"gitHead": "7243b24766d60a8b4c7d92aec757238c96590172" | ||
} |
@@ -25,10 +25,10 @@ # eslint-plugin-wdio | ||
To enable this configuration use the extends property in your .eslintrc config file: | ||
To enable this configuration use the extends property in your `.eslintrc` config file: | ||
```json | ||
{ | ||
"plugins": [ | ||
"wdio" | ||
], | ||
"extends": "plugin:wdio/recommended" | ||
"extends": [ | ||
"eslint:recommended", | ||
"plugin:wdio/recommended" | ||
] | ||
} | ||
@@ -38,1 +38,9 @@ ``` | ||
See [ESLint documentation](https://eslint.org/docs/user-guide/configuring#extending-configuration-files) for more information about extending configuration files. | ||
## List of supported rules | ||
| Rule | Description | | ||
| :--- | :--- | | ||
| [wdio/await-expect](docs/rules/await-expect.md) | `expect` calls must be prefixed with an `await` | | ||
| [wdio/no-debug](docs/rules/no-debug.md) | Don't allow `browser.debug()` statements | | ||
| [wdio/no-pause](docs/rules/no-pause.md) | Don't allow `browser.pause(<number>)` statements | |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
16669
0
27
387
45
2
1
- Removedexpect-webdriverio@^3.1.4
- Removedglob@^7.2.0
- Removed@babel/code-frame@7.26.2(transitive)
- Removed@babel/helper-validator-identifier@7.25.9(transitive)
- Removed@jest/expect-utils@28.1.3(transitive)
- Removed@jest/schemas@28.1.3(transitive)
- Removed@jest/types@28.1.3(transitive)
- Removed@sinclair/typebox@0.24.51(transitive)
- Removed@types/istanbul-lib-coverage@2.0.6(transitive)
- Removed@types/istanbul-lib-report@3.0.3(transitive)
- Removed@types/istanbul-reports@3.0.4(transitive)
- Removed@types/node@22.13.0(transitive)
- Removed@types/stack-utils@2.0.3(transitive)
- Removed@types/yargs@17.0.33(transitive)
- Removed@types/yargs-parser@21.0.3(transitive)
- Removedansi-regex@5.0.1(transitive)
- Removedansi-styles@4.3.05.2.0(transitive)
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedbraces@3.0.3(transitive)
- Removedchalk@4.1.2(transitive)
- Removedci-info@3.9.0(transitive)
- Removedcolor-convert@2.0.1(transitive)
- Removedcolor-name@1.1.4(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removeddiff-sequences@28.1.1(transitive)
- Removedescape-string-regexp@2.0.0(transitive)
- Removedexpect@28.1.3(transitive)
- Removedexpect-webdriverio@3.6.0(transitive)
- Removedfill-range@7.1.1(transitive)
- Removedfs.realpath@1.0.0(transitive)
- Removedglob@7.2.3(transitive)
- Removedgraceful-fs@4.2.11(transitive)
- Removedhas-flag@4.0.0(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedis-number@7.0.0(transitive)
- Removedjest-diff@28.1.3(transitive)
- Removedjest-get-type@28.0.2(transitive)
- Removedjest-matcher-utils@28.1.3(transitive)
- Removedjest-message-util@28.1.3(transitive)
- Removedjest-util@28.1.3(transitive)
- Removedjs-tokens@4.0.0(transitive)
- Removedmicromatch@4.0.8(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedonce@1.4.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedpicocolors@1.1.1(transitive)
- Removedpicomatch@2.3.1(transitive)
- Removedpretty-format@28.1.3(transitive)
- Removedreact-is@18.3.1(transitive)
- Removedslash@3.0.0(transitive)
- Removedstack-utils@2.0.6(transitive)
- Removedsupports-color@7.2.0(transitive)
- Removedto-regex-range@5.0.1(transitive)
- Removedundici-types@6.20.0(transitive)
- Removedwrappy@1.0.2(transitive)