{"id":19713,"library":"eslint-plugin-codeceptjs","title":"eslint-plugin-codeceptjs","description":"An ESLint plugin providing lint rules for CodeceptJS test files. Version 1.3.0 is the latest stable release, with a low release cadence (latest in 2020). It includes rules to prevent common testing anti-patterns: no-exclusive-tests (focusing tests), no-disabled-tests (skipping), no-actor-in-scenario (forcing page objects), and no-pause-in-scenario (removing debug pauses). Unlike generic ESLint rules, it understands CodeceptJS globals (I, Scenario, Data) and provides a recommended config for easy setup. It is fixable for three of its four rules, automatically removing `.only`, `.skip`, and `pause()` calls.","status":"maintenance","version":"1.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/poenneby/eslint-plugin-codeceptjs","tags":["javascript","eslint","eslintplugin","eslint-plugin"],"install":[{"cmd":"npm install eslint-plugin-codeceptjs","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-codeceptjs","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-codeceptjs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required to load and run the plugin rules.","package":"eslint","optional":false}],"imports":[{"note":"The recommended config is accessed via 'plugin:codeceptjs/recommended' in eslintrc.","wrong":"extends: ['codeceptjs/recommended']","symbol":"configs.recommended","correct":"extends: ['plugin:codeceptjs/recommended']"},{"note":"Rules must be prefixed with 'codeceptjs/' when not using the recommended config.","wrong":"rules: { 'no-exclusive-tests': 'error' }","symbol":"rules","correct":"rules: { 'codeceptjs/no-exclusive-tests': 'error' }"},{"note":"The environment is nested under the plugin name: 'codeceptjs/codeceptjs'.","wrong":"env: { 'codeceptjs': true }","symbol":"env","correct":"env: { 'codeceptjs/codeceptjs': true }"}],"quickstart":{"code":"// Install dependencies\nnpm install eslint eslint-plugin-codeceptjs --save-dev\n\n// .eslintrc.json\n{\n  \"plugins\": [\"codeceptjs\"],\n  \"env\": {\n    \"codeceptjs/codeceptjs\": true\n  },\n  \"rules\": {\n    \"codeceptjs/no-exclusive-tests\": \"error\",\n    \"codeceptjs/no-skipped-tests\": \"error\",\n    \"codeceptjs/no-pause-in-scenario\": \"warn\"\n  }\n}\n\n// Example test file that will trigger errors\nFeature('Sample');\nScenario.only('focused test', ({ I }) => {\n  I.amOnPage('/');\n  pause(); // warns\n});\n\nxScenario('skipped test', ({ I }) => {\n  I.see('Hello');\n});\n\n// Run: npx eslint test.js","lang":"javascript","description":"Setup with full plugin config and example test file that triggers no-exclusive-tests, no-skipped-tests, and no-pause-in-scenario rules."},"warnings":[{"fix":"Replace 'no-disabled-tests' with 'no-skipped-tests' in your ESLint config.","message":"The 'no-disabled-tests' rule was renamed to 'no-skipped-tests' in version 1.0.0. Using the old name will be silently ignored.","severity":"gotcha","affected_versions":"<1.0.0"},{"fix":"Set env to { 'codeceptjs/codeceptjs': true } in your ESLint config.","message":"The environment must be specified as 'codeceptjs/codeceptjs', not just 'codeceptjs'. Omitting the namespace fails to register globals.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Use fix: false on the rule or manually review removals.","message":"The 'no-pause-in-scenario' rule is fixable but its auto-fix removes pause() calls entirely, which may break tests if pause is used for debugging during development.","severity":"deprecated","affected_versions":">=1.2.0"},{"fix":"Override rule severity in your config, e.g., 'codeceptjs/no-pause-in-scenario': 'warn'.","message":"When using the recommended config, all fixable rules default to 'error'. This may be too strict for development; adjust severity as needed.","severity":"gotcha","affected_versions":">=1.1.0"},{"fix":"Update to 'no-skipped-tests' in your ESLint config.","message":"Version 1.0.0 removed the old 'no-disabled-tests' rule and replaced it with 'no-skipped-tests'. Configs using the old name stop working silently.","severity":"breaking","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install eslint-plugin-codeceptjs --save-dev' (or global flag if ESLint is global).","cause":"ESLint cannot locate the plugin because it's not installed or not in node_modules.","error":"Cannot find module 'eslint-plugin-codeceptjs'"},{"fix":"Change env to { 'codeceptjs/codeceptjs': true }.","cause":"Environment was specified as 'codeceptjs' instead of 'codeceptjs/codeceptjs'.","error":"ESLint configuration error: Unknown environment 'codeceptjs'"},{"fix":"Use 'extends: ['plugin:codeceptjs/recommended']'.","cause":"Using 'extends: 'codeceptjs/recommended' without the 'plugin:' prefix.","error":"ESLint configuration error: Cannot read property 'recommended' of undefined"},{"fix":"Prefix rule with 'codeceptjs/', e.g., 'codeceptjs/no-exclusive-tests'.","cause":"Rule name not prefixed with plugin namespace when not using recommended config.","error":"Definition for rule 'no-exclusive-tests' was not found"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}