Skip to content
PluginStats

eslint-node-test weekly downloads statistics

By sindresorhus (6 listings) · npm · ESLint plugins

ESLint rules for the Node.js built-in test runner (`node:test`)

View on npm Fresh · Oct 17, 2026

eslint-node-test has 23,998 recorded weekly downloads on npm, a decrease of 41.9% over the past 30 days.

It ranks #711 of 2,256 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by +10.1%.

PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.

Weekly downloads
23,998
Official API · Oct 17, 2026
7-day growth
-55.1%
-29.4K weekly downloads
30-day growth
-41.9%
-17.3K weekly downloads
90-day growth
+10.1%
+2.2K weekly downloads
Rank
#711
Among tracked npm listings

About eslint-node-test

eslint-node-test

ESLint rules for the Node.js built-in test runner (node:test)

This plugin helps you avoid common mistakes and write more consistent tests with node:test, the test runner built into Node.js.

Install

Requires ESLint >=10.4, flat config, and ESM.

Usage

Use a preset config or configure each rule in eslint.config.js.

Or configure rules individually:

The example scopes the plugin to JavaScript files. Add TypeScript extensions only when your ESLint config provides a TypeScript parser for them. The rules only activate in files that import from node:test (and assertion rules also activate for Node's built-in assert module), so you can safely apply the plugin across your whole project.

Rules

💼 Configurations enabled in.\ ✅ Set in the recommended configuration.\ ☑️ Set in the unopinionated configuration.\ 🔧 Automatically fixable by the --fix CLI option.\ 💡 Manually fixable by editor suggestions.

| Name | Description | 💼 | 🔧 | 💡 |

| assertion-arguments | Enforce the correct number of arguments for node:assert assertions. | ✅ ☑️ | | | | consistent-assert-style | Enforce a consistent truthiness assertion style. | ✅ | 🔧 | | | consistent-assert-throws-callback-style | Enforce a consistent body style for assert.throws() arrow callbacks. | | 🔧 | | | consistent-modifier-style | Enforce a consistent style for test modifiers. | | | | | consistent-test-context-name | Enforce a consistent name for the test context parameter. | ✅ ☑️ | | | | consistent-test-filename | Enforce a consistent test file name pattern. | | | | | consistent-test-it | Enforce consistent use of test or it. | | | | | hooks-order | Enforce a consistent order of hook declarations. | ✅ ☑️ | 🔧 | | | max-assertions | Enforce a maximum number of assertions in a test. | | | | | max-nested-describe | Enforce a maximum depth for nested describe blocks. | ✅ | | | | no-assert-in-describe | Disallow assertions directly inside a describe body. | ✅ | | | | no-assert-in-hook | Disallow assertions inside hooks. | | | | | no-assert-match-string | Disallow strings as the regexp argument of assert.match()/assert.doesNotMatch(). | ✅ ☑️ | | 💡 | | no-assert-throws-async | Disallow passing an async function to assert.throws()/assert.doesNotThrow(). | ✅ ☑️ | | 💡 | | no-assert-throws-call | Disallow calling the function passed to assert.throws(). | ✅ ☑️ | | 💡 | | no-assert-throws-multiple-statements | Disallow multiple statements in assert.throws()/assert.rejects() callbacks. | ✅ | | | | no-assert-throws-string | Disallow a string as the error matcher of assert.throws()/assert.rejects(). | ✅ ☑️ | | 💡 | | no-async-describe | Disallow async describe callbacks. | ✅ ☑️ | | | | no-async-fn-without-await | Disallow async test/hook functions that have no await expression. | ✅ ☑️ | | 💡 | | no-callback-and-promise | Disallow a test or hook from using both a callback and a Promise. | ✅ ☑️ | | | | no-commented-tests | Disallow commented-out tests. | | | | | no-compound-assertion | Disallow compound truthiness assertions. | ✅ ☑️ | 🔧 | | | no-conditional-assertion | Disallow assertions inside conditional code within a test. | ✅ ☑️ | | | | no-conditional-in-test | Disallow conditional logic inside tests. | | | | | no-conditional-tests | Disallow conditionally registering tests, suites, and hooks. | ✅ | | | | no-conflicting-modifiers | Disallow conflicting test modifiers. | ✅ ☑️ | | | | no-constant-assertion | Disallow assertions with constant outcomes. | ✅ ☑️ | | | | no-done-callback | Disallow callback (done) parameters in tests and hooks. | | | | | no-duplicate-assertions | Disallow adjacent duplicate assertions. | ✅ ☑️ | | | | no-duplicate-hooks | Disallow duplicate hooks within the same scope. | ✅ | | | | no-duplicate-mock-timers-enable | Disallow enabling mock timers more than once without resetting them. | ✅ ☑️ | | | | no-duplicate-plan | Disallow setting a test plan more than once in the same test. | ✅ ☑️ | | | | no-expect-failure-without-reason | Require a reason when marking a test or suite as expected to fail. | ✅ | | | | no-export | Disallow exports from test files. | ✅ | | | | no-identical-assertion-arguments | Disallow comparing a value to itself in an assertion. | ✅ ☑️ | | | | no-identical-title | Disallow identical test titles within the same scope. | ✅ ☑️ | | | | no-import-test-files | Disallow imports of Node.js test files. | ✅ ☑️ | | | | no-incorrect-deep-equal | Disallow deepEqual/deepStrictEqual (and their notDeep* variants) when comparing with primitives. | ✅ ☑️ | 🔧 | | | no-incorrect-strict-equal | Disallow strictEqual/equal (and their not* variants) when comparing with an object or array literal. | ✅ ☑️ | 🔧 | | | no-late-test-activity | Disallow test activity inside detached asynchronous callbacks. | ✅ ☑️ | 🔧 | | | no-loop-static-title | Disallow a static test or suite title inside a loop. | ✅ ☑️ | | | | no-misused-concurrency | Disallow the concurrency option on a test without subtests. | ✅ ☑️ | | | | no-misused-context-hook | Disallow context hooks without runnable subtests. | ✅ ☑️ | | | | no-mock-module-after-import | Disallow mocking a module after statically importing it. | ✅ ☑️ | | | | no-mock-timers-destructured-import | Disallow destructured timer imports when using mock.timers. | ✅ ☑️ | | | | no-nested-tests | Disallow tests and suites nested inside a test body. | ✅ ☑️ | | | | no-only-test | Disallow the .only test modifier. | ✅ ☑️ | | 💡 | | no-parent-test-context | Disallow references to parent test contexts inside subtests. | ✅ ☑️ | | 💡 | | no-process-chdir-in-test | Disallow changing the working directory inside tests. | ✅ | | | | no-process-env-mutation | Disallow mutating process.env inside tests. | ✅ | | | | no-process-exit-in-test | Disallow process exit control in test files. | ✅ ☑️ | | | | no-skip-test | Disallow the .skip test modifier. | ✅ | | 💡 | | no-skip-without-reason | Require a reason when skipping or marking a test as todo. | | | | | no-skip-without-return | Disallow…

Description from the npm listing.

  • eslint
  • eslintplugin
  • eslint-plugin
  • node-test
  • node:test
  • test-runner
  • testing
  • test
  • linter
  • lint
  • style
  • xo

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

eslint-node-test weekly downloads on npm, last 90 days: 23,998 weekly downloads as of Oct 17, 2026, +10.1% over 90 days.eslint-node-testWeekly downloads on npm · Last 90 days23,998downloads / week+10.1% over 90 days20K25K30K35K40K45K50K55K60KJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
eslint-node-test weekly downloads on npm, last 90 days: 23,998 weekly downloads as of Oct 17, 2026, +10.1% over 90 days.
PNG SVG

7/30/90-day growth

eslint-node-test weekly downloads growth on npm: -55.1% over 7 days, -41.9% over 30 days, +10.1% over 90 days.eslint-node-testWeekly downloads growth on npm23,998downloads / week now7-day growth-29,415 weekly downloads-55.1%30-day growth-17,291 weekly downloads-41.9%90-day growth+2,193 weekly downloads+10.1%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
eslint-node-test weekly downloads growth on npm: -55.1% over 7 days, -41.9% over 30 days, +10.1% over 90 days.
PNG SVG

Ranking history

eslint-node-test npm ranking history: currently #711 (by weekly downloads).eslint-node-testnpm ranking · by weekly downloads · Last 90 days#711current rank#709#710#711#712#713Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
eslint-node-test npm ranking history: currently #711 (by weekly downloads).
PNG SVG

Listing placement

All npm2,256 listings · 113 pages · 1,129 shown · page 36, #11 (overall #711)
All npm: every listing in weekly downloads order
PNG SVG

Listing placement

ESLint plugins253 listings · 13 pages · page 9, #9 (overall #169)
ESLint plugins: every listing in weekly downloads order
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (121)
Recent weekly downloads observations for eslint-node-test
Date (UTC)Weekly downloadsChange vs. previous
23,998-5.1K
29,091-3K
32,120-10.5K
42,572-10.9K
53,5040
53,504-925
54,429+1K
53,413+192
53,221+1K
52,209+1.1K
51,072+3.1K
47,996-9.8K
57,813+265
57,548—

Similar npm ESLint plugins plugins

All 20 eslint-node-test alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/eslint-node-test. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.