# What changed in eslint-plugin-playwright

> 56 changes in eslint-plugin-playwright 2 from its official release notes, upgrade guides and advisories: 1 breaking, 18 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/eslint-plugin-playwright/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## eslint-plugin-playwright 2

### Breaking changes

- The rule now catches all uses, not just uses on page methods. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)

### New APIs and options

- Disallows per-call timeouts on actions. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Disallows exports in files containing tests. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Disallows identical test and describe titles. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Adds minOccurrences to configure the rule's minimum occurrence threshold. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Disallows template literals in titles. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Disallows returning from a test body. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Requires tests to end in an assertion. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Requires a reason on skip and fixme. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Adds a flag to check more missing awaits. (2.10.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.0)
- Adds an option to disable `.fixme()` annotations. (2.10.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.0)
- Adds the no-duplicate-slow rule. (2.6.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.0)
- Adds the no-restricted-roles rule. (2.6.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.0)
- Adds the require-tags rule. (2.6.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.0)
- Adds the require-to-pass-timeout rule. (2.6.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.0)
- Adds the enforce-consistent-spacing-between-blocks rule. (2.5.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.5.0)
- Adds the no-restricted-locators rule. (2.5.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.5.0)
- Supports regex patterns. (2.4.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.4.0)
- Adds the no-unused-locators rule. (2.3.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.3.0)

### Behavior and default changes

- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule is now included in the recommended configuration. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- Import aliases are now auto-detected. (2.8.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.8.0)
- Fixtures defined with test.extend() are now auto-detected. (2.8.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.8.0)
- The rule supports waitForResponse and other similar functions. (2.6.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.0)
- The rule now supports allInnerTexts() and allTextContents(). (2.5.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.5.0)

### Tooling

- Flags inline numeric timeout values. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- Flags always-passing assertions on a Locator so developers can identify unnecessary assertions. (2.11.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.11.0)
- Adds support for ESLint 10, allowing eslint-plugin-playwright to be used with that ESLint version. (2.7.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.7.0)

### Fixes and other changes

- Replaces the unsupported JSON Schema contains keyword with enum in the rule option schema. (2.12.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.1)
- Detects testInfo annotations and splits allowConditional. (2.12.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.12.0)
- The rule now handles optional chaining when detecting missing Playwright awaits. (2.10.5) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.5)
- The valid-title rule skips title checks for anonymous describe blocks. (2.10.4) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.4)
- Fixes a false positive when an awaited variable is not assigned. (2.10.3) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.3)
- Fixes a false positive when re-assigning an awaited variable. (2.10.2) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.2)
- Handles anonymous describe blocks in forEach loops. (2.10.2) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.2)
- Supports template literal strings. (2.10.2) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.2)
- The rule no longer flags Array.fill as missing await. (2.10.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.1)
- Page detection is narrowed to prefer false positives. (2.10.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.1)
- Fixes a false positive for expect().resolves. (2.10.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.0)
- Supports additional promise methods when checking for missing awaits. (2.10.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.10.0)
- Support for nested locators is fixed across all contexts. (2.9.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.9.0)
- The rule now handles spread elements when detecting missing awaits. (2.8.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.8.0)
- The rule now supports more promise edge cases when detecting missing awaits. (2.8.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.8.0)
- Fixes a false positive with promise chains. (2.7.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.7.1)
- Excluded @typescript-eslint/utils from the bundle, changing how the package is bundled for consumers. (2.6.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.1)
- The rule ignores variables whose values it cannot statically determine. (2.6.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.6.0)
- Fixes a false positive for `||` in the no-conditional-in-test rule. (2.5.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.5.1)
- Fixes TypeScript types. (2.5.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.5.0)
- The rule now allows the nullish coalescing operator in tests. (2.4.1) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.4.1)
- Prevents infinite recursion in checkValidity. (2.4.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.4.0)
- Checks for test tags in titles. (2.3.0) — [release notes](https://github.com/mskelton/eslint-plugin-playwright/releases/tag/v2.3.0)
