Commit 34022d7651 for woocommerce
commit 34022d765172d62894c0931a3531e3110d1d5125
Author: theAverageDev (Luca Tumedei) <luca@theaveragedev.com>
Date: Tue Feb 10 12:39:52 2026 +0100
Convert e2e-pw test specs to TypeScript (batch 4) (#63213)
diff --git a/plugins/woocommerce/changelog/e2e-pw-ts-conversion-05 b/plugins/woocommerce/changelog/e2e-pw-ts-conversion-05
new file mode 100644
index 0000000000..82e5b9eaa1
--- /dev/null
+++ b/plugins/woocommerce/changelog/e2e-pw-ts-conversion-05
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Convert fourth set of e2e-pw test file to TypeScript.
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-addresses.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-addresses.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-addresses.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-addresses.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-create-account.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-create-account.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-create-account.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-create-account.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-downloads.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-downloads.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-downloads.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-downloads.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-pay-order.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-pay-order.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-pay-order.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account-pay-order.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account.spec.ts
similarity index 82%
rename from plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account.spec.ts
index 58c2cedb80..78c64a3438 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/my-account/my-account.spec.ts
@@ -1,9 +1,14 @@
+/**
+ * External dependencies
+ */
+import { test, expect } from '@playwright/test';
+
/**
* Internal dependencies
*/
-const { test, expect } = require( '@playwright/test' );
-const { customer } = require( '../../test-data/data' );
-const { CUSTOMER_STATE_PATH } = require( '../../playwright.config' );
+import { customer } from '../../test-data/data';
+import { CUSTOMER_STATE_PATH } from '../../playwright.config';
+
const pages = [ 'Orders', 'Downloads', 'Addresses', 'Account details' ];
test.describe( 'My account page', () => {
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/onboarding/add-product-task.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/onboarding/add-product-task.spec.ts
similarity index 94%
rename from plugins/woocommerce/tests/e2e-pw/tests/onboarding/add-product-task.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/onboarding/add-product-task.spec.ts
index 285c6f8d89..264a6b019e 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/onboarding/add-product-task.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/onboarding/add-product-task.spec.ts
@@ -12,7 +12,8 @@ import {
import { expect, test } from '../../fixtures/fixtures';
import { ADMIN_STATE_PATH } from '../../playwright.config';
-const hide_task_list = async ( restApi, task_list_name ) => {
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const hide_task_list = async ( restApi: any, task_list_name: string ) => {
const {
status,
data: { isHidden },
@@ -25,7 +26,8 @@ const hide_task_list = async ( restApi, task_list_name ) => {
return isHidden === true;
};
-const show_task_list = async ( restApi, task_list_name ) => {
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const show_task_list = async ( restApi: any, task_list_name: string ) => {
const {
status,
data: { isHidden },
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/onboarding/launch-your-store.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/onboarding/launch-your-store.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/onboarding/launch-your-store.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/onboarding/launch-your-store.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/onboarding/onboarding-wizard.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/onboarding/onboarding-wizard.spec.ts
similarity index 99%
rename from plugins/woocommerce/tests/e2e-pw/tests/onboarding/onboarding-wizard.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/onboarding/onboarding-wizard.spec.ts
index 244d033352..bf4ba29393 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/onboarding/onboarding-wizard.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/onboarding/onboarding-wizard.spec.ts
@@ -2,6 +2,7 @@
* External dependencies
*/
import { request } from '@playwright/test';
+import type { Page } from '@playwright/test';
/**
* Internal dependencies
@@ -11,7 +12,7 @@ import { setOption } from '../../utils/options';
import { setComingSoon } from '../../utils/coming-soon';
import { ADMIN_STATE_PATH } from '../../playwright.config';
-const getPluginLocator = ( page, slug ) => {
+const getPluginLocator = ( page: Page, slug: string ) => {
return page.locator(
`.woocommerce-profiler-plugins-plugin-card[data-slug="${ slug }"]`
);
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/onboarding/setup-checklist.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/onboarding/setup-checklist.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/onboarding/setup-checklist.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/onboarding/setup-checklist.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-grouped-product-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-grouped-product-block-editor.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-grouped-product-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-grouped-product-block-editor.spec.ts
index 487278537d..0a4161ed87 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-grouped-product-block-editor.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-grouped-product-block-editor.spec.ts
@@ -24,7 +24,8 @@ const productData = {
summary: 'This is a product summary',
};
-const groupedProducts = [];
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const groupedProducts: any[] = [];
test.describe( 'General tab', { tag: tags.GUTENBERG }, () => {
test.describe( 'Grouped product', () => {
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-simple-product-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-simple-product-block-editor.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-simple-product-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-simple-product-block-editor.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-variable-product-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-variable-product-block-editor.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-variable-product-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/create-variable-product-block-editor.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/data/tabs.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/data/tabs.ts
similarity index 96%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/data/tabs.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/data/tabs.ts
index 6f6765f2a1..9790c4f197 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/data/tabs.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/data/tabs.ts
@@ -20,4 +20,4 @@ const tabs = [
},
];
-module.exports = tabs;
+export default tabs;
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/disable-block-product-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/disable-block-product-editor.spec.ts
similarity index 83%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/disable-block-product-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/disable-block-product-editor.spec.ts
index c3913734c5..c0f893ff44 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/disable-block-product-editor.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/disable-block-product-editor.spec.ts
@@ -1,18 +1,25 @@
-const { test, expect } = require( '@playwright/test' );
-const {
+/**
+ * External dependencies
+ */
+import { test, expect, type Page } from '@playwright/test';
+
+/**
+ * Internal dependencies
+ */
+import {
clickAddNewMenuItem,
expectBlockProductEditor,
expectOldProductEditor,
-} = require( '../../../utils/simple-products' );
-const { toggleBlockProductTour } = require( '../../../utils/tours' );
-const { tags } = require( '../../../fixtures/fixtures' );
-const { ADMIN_STATE_PATH } = require( '../../../playwright.config' );
-const { wpCLI } = require( '../../../utils/cli' );
-const { skipTestsForDeprecatedFeature } = require( './helpers/skip-tests' );
+} from '../../../utils/simple-products';
+import { toggleBlockProductTour } from '../../../utils/tours';
+import { tags } from '../../../fixtures/fixtures';
+import { ADMIN_STATE_PATH } from '../../../playwright.config';
+import { wpCLI } from '../../../utils/cli';
+import { skipTestsForDeprecatedFeature } from './helpers/skip-tests';
skipTestsForDeprecatedFeature();
-async function dismissFeedbackModalIfShown( page ) {
+async function dismissFeedbackModalIfShown( page: Page ) {
try {
await page
.getByRole( 'button', { name: 'Skip' } )
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/fixtures/attributes.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/fixtures/attributes.ts
similarity index 96%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/fixtures/attributes.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/fixtures/attributes.ts
index 33edc3764a..05fdec9dcd 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/fixtures/attributes.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/fixtures/attributes.ts
@@ -32,4 +32,4 @@ const attributes = [
},
];
-module.exports = attributes;
+export default attributes;
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/skip-tests.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/skip-tests.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/skip-tests.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/skip-tests.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/wait-for-global-attributes-loaded.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/wait-for-global-attributes-loaded.ts
similarity index 75%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/wait-for-global-attributes-loaded.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/wait-for-global-attributes-loaded.ts
index 126b2f420c..f7e557195a 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/wait-for-global-attributes-loaded.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/helpers/wait-for-global-attributes-loaded.ts
@@ -1,3 +1,11 @@
+/**
+ * External dependencies
+ */
+import type { Page } from '@playwright/test';
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+declare const wp: any;
+
/**
* Waits for the global attributes to be loaded on the page.
*
@@ -8,7 +16,7 @@
* @param {Object} page - The Playwright Page object.
* @return {Promise<void>} A promise that resolves when the global attributes are loaded.
*/
-export async function waitForGlobalAttributesLoaded( page ) {
+export async function waitForGlobalAttributesLoaded( page: Page ) {
await page.waitForFunction( () => {
const storeId = 'wc/admin/products/attributes';
const attributeSortCriteria = { order_by: 'name' };
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/linked-product-tab-product-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/linked-product-tab-product-block-editor.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/linked-product-tab-product-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/linked-product-tab-product-block-editor.spec.ts
index 23c689102d..7ed4a3a0dd 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/linked-product-tab-product-block-editor.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/linked-product-tab-product-block-editor.spec.ts
@@ -28,9 +28,10 @@ const productData = {
summary: 'This is a product summary',
};
-const linkedProductsData = [],
- productIds = [];
-let productId = 0;
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const linkedProductsData: any[] = [],
+ productIds: number[] = [];
+let productId: string | null = null;
test.describe( 'General tab', { tag: tags.GUTENBERG }, () => {
test.describe( 'Linked product', () => {
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/organization-tab-product-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/organization-tab-product-block-editor.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/organization-tab-product-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/organization-tab-product-block-editor.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-attributes-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-attributes-block-editor.spec.ts
similarity index 99%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-attributes-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-attributes-block-editor.spec.ts
index 734b45c29a..b13ce91edc 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-attributes-block-editor.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-attributes-block-editor.spec.ts
@@ -2,6 +2,7 @@
* External dependencies
*/
import { WC_API_PATH } from '@woocommerce/e2e-utils-playwright';
+import type { Page } from '@playwright/test';
/**
* Internal dependencies
@@ -16,7 +17,7 @@ import { skipTestsForDeprecatedFeature } from './helpers/skip-tests';
skipTestsForDeprecatedFeature();
-async function waitForAttributeList( page ) {
+async function waitForAttributeList( page: Page ) {
// The list child is different in case there are no results versus when there already are some attributes, so we need to wait for either one to be visible.
await Promise.race( [
// in case there's at least one attribute
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-edit-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-edit-block-editor.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-edit-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-edit-block-editor.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-images-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-images-block-editor.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-images-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-images-block-editor.spec.ts
index e8033ac5ca..2ad26314b6 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-images-block-editor.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-images-block-editor.spec.ts
@@ -2,6 +2,7 @@
* External dependencies
*/
import { WC_API_PATH } from '@woocommerce/e2e-utils-playwright';
+import type { Page } from '@playwright/test';
/**
* Internal dependencies
@@ -12,8 +13,8 @@ import { skipTestsForDeprecatedFeature } from './helpers/skip-tests';
skipTestsForDeprecatedFeature();
-async function selectImagesInLibrary( page, imagesNames ) {
- const dataIds = [];
+async function selectImagesInLibrary( page: Page, imagesNames: string[] ) {
+ const dataIds: string[] = [];
await page.getByRole( 'tab', { name: 'Media Library' } ).click();
@@ -26,7 +27,9 @@ async function selectImagesInLibrary( page, imagesNames ) {
await imageLocator.click();
await expect( imageLocator ).toBeChecked();
const dataId = await imageLocator.getAttribute( 'data-id' );
- dataIds.push( dataId );
+ if ( dataId !== null ) {
+ dataIds.push( dataId );
+ }
}
await page.getByRole( 'button', { name: 'Select', exact: true } ).click();
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-inventory-block-editor.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-inventory-block-editor.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-inventory-block-editor.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/block-editor/product-inventory-block-editor.spec.ts