Commit 1e234e1580 for woocommerce
commit 1e234e15806b693f6c26a19696674aa085035619
Author: theAverageDev (Luca Tumedei) <luca@theaveragedev.com>
Date: Mon Feb 9 12:02:39 2026 +0100
Add TypeScript support scaffolding for e2e-pw tests (#63188)
diff --git a/plugins/woocommerce/changelog/e2e-pw-ts-conversion-01 b/plugins/woocommerce/changelog/e2e-pw-ts-conversion-01
new file mode 100644
index 0000000000..cc58516e8c
--- /dev/null
+++ b/plugins/woocommerce/changelog/e2e-pw-ts-conversion-01
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Scaffold support files for TypeScript conversion of e2e-pw tests.
diff --git a/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs b/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs
new file mode 100644
index 0000000000..079adc1763
--- /dev/null
+++ b/plugins/woocommerce/tests/e2e-pw/.eslintrc.cjs
@@ -0,0 +1,41 @@
+module.exports = {
+ extends: [ 'plugin:playwright/recommended' ],
+ rules: {
+ 'playwright/no-wait-for-timeout': 'error',
+ 'playwright/no-skipped-test': 'off',
+ 'no-console': 'off',
+ 'jest/no-test-callback': 'off',
+ 'jest/no-disabled-tests': 'off',
+ 'jest/valid-expect': 'off',
+ 'jest/expect-expect': 'off',
+ 'jest/no-standalone-expect': 'off',
+ 'jest/valid-title': 'off',
+ 'testing-library/await-async-utils': 'off',
+ /*
+ * The e2e-pw tests use dependencies from the parent woocommerce package.
+ * This configuration tells ESLint to check both the local package.json
+ * and the parent package.json when validating imports.
+ */
+ 'import/no-extraneous-dependencies': [
+ 'warn',
+ {
+ packageDir: [ '.', '../..' ],
+ },
+ ],
+ },
+ overrides: [
+ /*
+ * The default ESLint parser will not handle TypeScript syntax.
+ * This override switches to the TypeScript parser for .ts and .tsx
+ * files so that ESLint can lint them without reporting parse errors.
+ */
+ {
+ files: [ '**/*.ts', '**/*.tsx' ],
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+ },
+ },
+ ],
+};
diff --git a/plugins/woocommerce/tests/e2e-pw/.eslintrc.js b/plugins/woocommerce/tests/e2e-pw/.eslintrc.js
deleted file mode 100644
index d46c97dcb8..0000000000
--- a/plugins/woocommerce/tests/e2e-pw/.eslintrc.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = {
- extends: [ 'plugin:playwright/recommended' ],
- rules: {
- 'playwright/no-wait-for-timeout': 'error',
- 'playwright/no-skipped-test': 'off',
- 'no-console': 'off',
- 'jest/no-test-callback': 'off',
- 'jest/no-disabled-tests': 'off',
- 'jest/valid-expect': 'off',
- 'jest/expect-expect': 'off',
- 'jest/no-standalone-expect': 'off',
- 'jest/valid-title': 'off',
- 'testing-library/await-async-utils': 'off',
- },
-};
diff --git a/plugins/woocommerce/tests/e2e-pw/tsconfig.json b/plugins/woocommerce/tests/e2e-pw/tsconfig.json
new file mode 100644
index 0000000000..561db06483
--- /dev/null
+++ b/plugins/woocommerce/tests/e2e-pw/tsconfig.json
@@ -0,0 +1,34 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig.json",
+ "compilerOptions": {
+ "target": "esnext",
+ "module": "esnext",
+ "moduleResolution": "node",
+ "baseUrl": ".",
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "resolveJsonModule": true,
+ "sourceMap": true,
+ "strict": true,
+ "strictNullChecks": true,
+ "skipLibCheck": true,
+ "noEmit": true,
+ "allowJs": true,
+ "checkJs": false,
+ "lib": [
+ "dom",
+ "esnext"
+ ],
+ "types": [
+ "node"
+ ]
+ },
+ "include": [
+ "**/*"
+ ],
+ "exclude": [
+ "node_modules",
+ "test-results",
+ "playwright-report"
+ ]
+}