{"id":19470,"library":"eslint-ava-rule-tester","title":"eslint-ava-rule-tester","description":"ESLint RuleTester runner for AVA test framework. Wraps ESLint's RuleTester to produce per-test reports in AVA format. Current stable version 5.0.1, pure ESM, requires Node.js >=18 and ESLint >=8.7.0. Supports all RuleTester features including valid/invalid cases, fix output, and error options. Releases: v5 breaking change to ESM-only; v4 dropped Node <7 and upgraded to ESLint v6; v2 added support for AVA 0.19. Key differentiator: provides granular test results instead of a single pass/fail for the entire rule suite.","status":"active","version":"5.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/jfmengels/eslint-ava-rule-tester","tags":["javascript","eslint","ava","test","rule"],"install":[{"cmd":"npm install eslint-ava-rule-tester","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-ava-rule-tester","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-ava-rule-tester","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency; provides RuleTester class","package":"eslint","optional":false}],"imports":[{"note":"ESM-only since v5; CommonJS require will fail. Use dynamic import or upgrade.","wrong":"const AvaRuleTester = require('eslint-ava-rule-tester');","symbol":"default","correct":"import AvaRuleTester from 'eslint-ava-rule-tester';"},{"note":"Default export only; named import not available.","wrong":"import { AvaRuleTester } from 'eslint-ava-rule-tester';","symbol":"AvaRuleTester","correct":"import AvaRuleTester from 'eslint-ava-rule-tester';"},{"note":"TypeScript users can use import type for type-only import.","wrong":"import { type AvaRuleTester } from 'eslint-ava-rule-tester';","symbol":"type inference","correct":"import type AvaRuleTester from 'eslint-ava-rule-tester';"}],"quickstart":{"code":"import test from 'ava';\nimport AvaRuleTester from 'eslint-ava-rule-tester';\nimport myRule from '../eslint-rules/my-rule.js';\n\nconst ruleTester = new AvaRuleTester(test, {\n  languageOptions: {\n    ecmaVersion: 2024,\n  },\n});\n\nruleTester.run('my-rule', myRule, {\n  valid: [\n    'valid code',\n  ],\n  invalid: [\n    {\n      code: 'invalid code',\n      errors: [{ message: 'Error message' }],\n    },\n  ],\n});","lang":"typescript","description":"Shows how to create an AvaRuleTester instance, passing the AVA test function and ESLint config, then run valid and invalid test cases."},"warnings":[{"fix":"Use import syntax and ensure Node.js version is >=18. If you must use CJS, upgrade to a dynamic import or pin to v4.x.","message":"v5.0.0 is pure ESM and requires Node.js >=18. CommonJS require() will not work.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Upgrade Node.js to at least v8 and ESLint to v6 or higher.","message":"v4.0.0 dropped support for Node.js <7 and requires ESLint v6 as peer dependency.","severity":"breaking","affected_versions":">=4.0.0 <5.0.0"},{"fix":"Ensure AVA version is at least 0.19.0.","message":"v2.0.1 requires AVA >=0.19 which enforces at least one assertion per test.","severity":"breaking","affected_versions":">=2.0.1"},{"fix":"If you were relying on prototype modifications to RuleTester, adapt to use the provided subclass instead.","message":"v5.0.0 changed the internal implementation to subclass RuleTester instead of modifying it. This may affect custom extensions.","severity":"breaking","affected_versions":">=5.0.0"}],"env_vars":null,"search_vec":"'0.19':72 '18':34 '5.0.1':29 '7':61 '8.7.0':37 'ad':68 'ava':3,10,24,71,91 'break':52 'case':44 'chang':53 'current':26 'differenti':74 'drop':59 'entir':86 'error':48 'eslint':2,6,14,36,65,90 'eslint-ava-rule-test':1 'esm':31,56 'esm-on':55 'featur':41 'fix':45 'format':25 'framework':12 'granular':76 'includ':42 'instead':79 'javascript':89 'key':73 'node':60 'node.js':33 'option':49 'output':46 'pass/fail':83 'per':20 'per-test':19 'produc':18 'provid':75 'pure':30 'releas':50 'report':22 'requir':32 'result':78 'rule':4,87,93 'ruletest':7,16,40 'runner':8 'singl':82 'stabl':27 'suit':88 'support':38,69 'test':11,21,77,92 'tester':5 'upgrad':63 'v2':67 'v4':58 'v5':51 'v6':66 'valid/invalid':43 'version':28 'wrap':13","created_at":"2026-04-25T11:17:58.825363+00:00","updated_at":"2026-04-25T11:17:58.825363+00:00","problems":[{"fix":"Switch to import or use dynamic import: const AvaRuleTester = await import('eslint-ava-rule-tester');","cause":"Trying to use require() with ESM-only package (v5+).","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module not supported."},{"fix":"Install eslint >=8.7.0 as a dev dependency.","cause":"Missing or incompatible peer dependency, typically eslint is not installed or version is too low.","error":"TypeError: Class extends value undefined is not a constructor or null"},{"fix":"Run npm install --save-dev eslint-ava-rule-tester","cause":"Package not installed or not in node_modules.","error":"Cannot find module 'eslint-ava-rule-tester'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/jfmengels/eslint-ava-rule-tester","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-ava-rule-tester","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}