Add coexistence checks to all enqueue methods to prevent loading both React and Grid.js assets simultaneously. Changes: - ReactAdmin.php: Only enqueue React assets when ?react=1 - Init.php: Skip Grid.js when React active on admin pages - Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0 - Customer.php, Product.php, License.php: Add coexistence checks Now the toggle between Classic and React versions works correctly. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
ESLint Plugin Playwright
ESLint plugin for Playwright.
Installation
npm
npm install -D eslint-plugin-playwright
Yarn
yarn add -D eslint-plugin-playwright
pnpm
pnpm add -D eslint-plugin-playwright
Usage
This plugin bundles two configurations to work with both @playwright/test or
jest-playwright.
With Playwright test runner
{
"extends": ["plugin:playwright/recommended"]
}
With Jest Playwright
{
"extends": ["plugin:playwright/jest-playwright"]
}
List of Supported Rules
✔: Enabled in the recommended configuration.
🔧: Some problems reported by this rule are automatically fixable by the --fix
command line option.
💡: Some problems reported by this rule are manually fixable by editor
suggestions.
| ✔ | 🔧 | 💡 | Rule | Description |
|---|---|---|---|---|
| ✔ | expect-expect | Enforce assertion to be made in a test body | ||
| ✔ | max-nested-describe | Enforces a maximum depth to nested describe calls | ||
| ✔ | 🔧 | missing-playwright-await | Enforce Playwright APIs to be awaited | |
| ✔ | no-conditional-in-test | Disallow conditional logic in tests | ||
| ✔ | 💡 | no-element-handle | Disallow usage of element handles | |
| ✔ | no-eval | Disallow usage of page.$eval and page.$$eval |
||
| ✔ | 💡 | no-focused-test | Disallow usage of .only annotation |
|
| ✔ | no-force-option | Disallow usage of the { force: true } option |
||
| ✔ | no-nested-step | Disallow nested test.step() methods |
||
| ✔ | no-networkidle | Disallow usage of the networkidle option |
||
| no-nth-methods | Disallow usage of first(), last(), and nth() methods |
|||
| ✔ | no-page-pause | Disallow using page.pause |
||
| ✔ | 🔧 | no-useless-await | Disallow unnecessary awaits for Playwright methods |
|
| no-restricted-matchers | Disallow specific matchers & modifiers | |||
| ✔ | 💡 | no-skipped-test | Disallow usage of the .skip annotation |
|
| ✔ | 🔧 | no-useless-not | Disallow usage of not matchers when a specific matcher exists |
|
| ✔ | 💡 | no-wait-for-timeout | Disallow usage of page.waitForTimeout |
|
| 💡 | prefer-strict-equal | Suggest using toStrictEqual() |
||
| 🔧 | prefer-lowercase-title | Enforce lowercase test names | ||
| 🔧 | prefer-to-be | Suggest using toBe() |
||
| 🔧 | prefer-to-contain | Suggest using toContain() |
||
| 🔧 | prefer-to-have-length | Suggest using toHaveLength() |
||
| ✔ | 🔧 | prefer-web-first-assertions | Suggest using web first assertions | |
| require-top-level-describe | Require test cases and hooks to be inside a test.describe block |
|||
| 🔧 | require-soft-assertions | Require assertions to use expect.soft() |
||
| ✔ | valid-expect | Enforce valid expect() usage |