eslint-plugin-test-governance 0.13.3 → 0.14.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +43 -1
  2. package/README.md +118 -445
  3. package/dist/index.d.ts +3 -3
  4. package/dist/index.js +11 -3
  5. package/dist/rules/{no-conflicting-states.d.ts → consistent-tag-names.d.ts} +1 -1
  6. package/dist/rules/{no-conflicting-states.js → consistent-tag-names.js} +2 -29
  7. package/dist/rules/limit-retries.d.ts +2 -0
  8. package/dist/rules/limit-retries.js +28 -0
  9. package/dist/utils/analyze.d.ts +5 -5
  10. package/dist/utils/analyze.js +90 -36
  11. package/dist/utils/constants.d.ts +1 -4
  12. package/dist/utils/constants.js +1 -3
  13. package/dist/utils/create-rule.d.ts +1 -1
  14. package/dist/utils/fix.js +1 -1
  15. package/dist/utils/frameworks.d.ts +2 -0
  16. package/dist/utils/frameworks.js +7 -6
  17. package/dist/utils/options.d.ts +7 -10
  18. package/dist/utils/options.js +3 -6
  19. package/dist/utils/schema.js +12 -11
  20. package/dist/utils/tickets.js +10 -5
  21. package/dist/utils/validate.d.ts +2 -0
  22. package/dist/utils/validate.js +3 -0
  23. package/docs/configuration.md +400 -0
  24. package/docs/frameworks.md +228 -0
  25. package/docs/rules/consistent-tag-names.md +79 -0
  26. package/docs/rules/limit-retries.md +94 -0
  27. package/docs/rules/marker-matches-state.md +28 -11
  28. package/docs/rules/no-orphaned-marker.md +33 -14
  29. package/docs/rules/require-ticket-for-commented-out-tests.md +30 -12
  30. package/docs/rules/require-ticket-in-comments.md +19 -17
  31. package/docs/rules/require-ticket.md +130 -41
  32. package/docs/troubleshooting.md +77 -0
  33. package/docs/upgrading.md +103 -31
  34. package/package.json +1 -1
  35. package/docs/rules/no-conflicting-states.md +0 -85
package/CHANGELOG.md CHANGED
@@ -6,6 +6,47 @@ All notable changes to this project are documented here. The format follows
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.14.0] - 2026-11-10
10
+
11
+ ### Fixed
12
+
13
+ - Treat arguments passed to Mocha, Cypress and WebdriverIO `this.skip()` as ignored, so a false
14
+ argument cannot hide an unconditional skip or explain a conditional one.
15
+ - Accept OpenProject short links under installation base paths and semantic work-package IDs,
16
+ while rejecting their zero-number placeholders.
17
+ - Read ticket IDs from URLs matched by custom patterns, rejecting zero IDs without mistaking
18
+ unrelated title suffixes or query values for placeholders.
19
+ - Recognize Vitest function titles without analyzing the name function as an executed body,
20
+ and preserve options, runtime contexts and ticket-to-metadata suggestions.
21
+ - Find commented-out tests through namespace aliases and recognize CommonJS-only test files,
22
+ while retaining protection against reassigned helpers and suite-hook aliases.
23
+
24
+ ### Added
25
+
26
+ - Add the opt-in `limit-retries` rule for Playwright, Jest, Vitest, Mocha, Cypress and WebdriverIO.
27
+ It checks readable native retry counts against the shared `maxRetries` setting (default `2`),
28
+ independently of retry ticket requirements. Framework configs leave the rule off.
29
+ - Recognize chained Mocha retry setters such as `it('example', fn).retries(3)` for retry ticketing
30
+ as well as retry limits.
31
+
32
+ ### Removed
33
+
34
+ - **Breaking:** remove `lifecycleTags`, `states.new`, `states.quarantined` and their tag overrides.
35
+ Use explicit `customStates` mappings for any tag that should require a ticket. Removed settings
36
+ fail with migration instructions; native runner states keep their existing defaults.
37
+ - Remove the built-in checks for `@new` on a skipped test and for `@new` combined with `@quarantined`.
38
+ Custom tags have no prescribed lifecycle or conflicts.
39
+
40
+ ### Changed
41
+
42
+ - **Breaking:** rename `no-conflicting-states` to `consistent-tag-names`. It retains case fixes and
43
+ spelling checks for `customStates` and `knownTags`; the old rule name fails with migration guidance.
44
+ See the [upgrade guide](docs/upgrading.md#upgrading-to-014-custom-tag-states).
45
+
46
+ - Reorganize documentation around a complete first lint run, with separate configuration, framework
47
+ and troubleshooting references. Clarify supported version combinations, optional states, example
48
+ settings and recent upgrade actions; retain existing README section links.
49
+
9
50
  ## [0.13.3] - 2026-11-09
10
51
 
11
52
  ### Fixed
@@ -644,7 +685,8 @@ First release.
644
685
  - Support for ESLint 9 and 10 flat config, JavaScript and TypeScript test files, `.extend()`
645
686
  fixtures, describe blocks, runtime skips and tags in titles or the `tag` option.
646
687
 
647
- [Unreleased]: https://github.com/Huldoser/eslint-plugin-test-governance/compare/v0.13.3...HEAD
688
+ [Unreleased]: https://github.com/Huldoser/eslint-plugin-test-governance/compare/v0.14.0...HEAD
689
+ [0.14.0]: https://github.com/Huldoser/eslint-plugin-test-governance/compare/v0.13.3...v0.14.0
648
690
  [0.13.3]: https://github.com/Huldoser/eslint-plugin-test-governance/compare/v0.13.2...v0.13.3
649
691
  [0.13.2]: https://github.com/Huldoser/eslint-plugin-test-governance/compare/v0.13.1...v0.13.2
650
692
  [0.13.1]: https://github.com/Huldoser/eslint-plugin-test-governance/compare/v0.13.0...v0.13.1