import { withDefaultOption, type EslintPlaywrightRules, } from '../types/index.mjs'; export const eslintPlaywrightRules = { /* Rules common with vitest (keep settings aligned) */ 'playwright/expect-expect': withDefaultOption('error'), 'playwright/max-expects': 'off', 'playwright/max-nested-describe': withDefaultOption('error'), 'playwright/no-commented-out-tests': 'off', 'playwright/no-conditional-expect': 'error', 'playwright/no-conditional-in-test': 'off', 'playwright/no-duplicate-hooks': 'error', 'playwright/no-hooks': withDefaultOption('error'), 'playwright/no-restricted-matchers': [ 'error', { toBeTruthy: 'Use `.toBe(true)` instead.', toBeFalsy: 'Use `.toBe(false)` instead.', }, ], 'playwright/no-standalone-expect': 'error', 'playwright/prefer-comparison-matcher': 'error', 'playwright/prefer-equality-matcher': 'error', 'playwright/prefer-hooks-in-order': 'error', 'playwright/prefer-hooks-on-top': 'error', 'playwright/prefer-strict-equal': 'error', 'playwright/prefer-to-be': 'error', 'playwright/prefer-to-contain': 'error', 'playwright/prefer-to-have-length': 'error', 'playwright/require-hook': 'off', 'playwright/require-to-throw-message': 'error', 'playwright/require-top-level-describe': 'off', 'playwright/valid-describe-callback': 'error', 'playwright/valid-expect': withDefaultOption('error'), 'playwright/valid-title': 'off', /* eslint-plugin-playwright specific rules */ 'playwright/missing-playwright-await': withDefaultOption('error'), 'playwright/no-element-handle': 'error', 'playwright/no-eval': 'error', 'playwright/no-focused-test': 'error', 'playwright/no-force-option': 'error', 'playwright/no-get-by-title': 'error', 'playwright/no-nested-step': 'error', 'playwright/no-networkidle': 'error', 'playwright/no-nth-methods': 'off', 'playwright/no-page-pause': 'error', 'playwright/no-raw-locators': withDefaultOption('error'), 'playwright/no-skipped-test': withDefaultOption('error'), 'playwright/no-slowed-test': withDefaultOption('error'), 'playwright/no-unsafe-references': 'error', 'playwright/no-useless-await': 'error', 'playwright/no-useless-not': 'error', 'playwright/no-wait-for-selector': 'error', 'playwright/no-wait-for-timeout': 'error', 'playwright/prefer-locator': 'error', 'playwright/prefer-lowercase-title': withDefaultOption('error'), 'playwright/prefer-native-locators': withDefaultOption('error'), 'playwright/prefer-to-have-count': 'error', 'playwright/prefer-web-first-assertions': 'error', 'playwright/require-soft-assertions': 'error', 'playwright/valid-expect-in-promise': 'error', 'playwright/no-wait-for-navigation': 'error', 'playwright/valid-test-tags': withDefaultOption('error'), 'playwright/no-unused-locators': 'error', 'playwright/consistent-spacing-between-blocks': 'error', 'playwright/no-restricted-locators': withDefaultOption('error'), 'playwright/no-duplicate-slow': 'error', 'playwright/no-restricted-roles': withDefaultOption('error'), 'playwright/require-tags': 'error', 'playwright/require-to-pass-timeout': 'error', 'playwright/no-unnecessary-assertions': 'error', } as const satisfies EslintPlaywrightRules;