Commit fe96b3cb49 for woocommerce
commit fe96b3cb49b9e6afc4c497040b853eea315a8a4a
Author: theAverageDev (Luca Tumedei) <luca@theaveragedev.com>
Date: Tue Feb 10 11:42:09 2026 +0100
Convert e2e-pw test specs to TypeScript (batch 3) (#63212)
diff --git a/plugins/woocommerce/changelog/e2e-pw-ts-conversion-04 b/plugins/woocommerce/changelog/e2e-pw-ts-conversion-04
new file mode 100644
index 0000000000..d9374a0cbc
--- /dev/null
+++ b/plugins/woocommerce/changelog/e2e-pw-ts-conversion-04
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Convert third set of e2e-pw tests to TypeScript.
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-access.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-access.spec.ts
similarity index 91%
rename from plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-access.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-access.spec.ts
index 35c31a2c38..2121bd6efd 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-access.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-access.spec.ts
@@ -1,6 +1,13 @@
-const { test, expect } = require( '@playwright/test' );
-const { tags } = require( '../../fixtures/fixtures' );
-const { ADMIN_STATE_PATH } = require( '../../playwright.config' );
+/**
+ * External dependencies
+ */
+import { test, expect } from '@playwright/test';
+
+/**
+ * Internal dependencies
+ */
+import { tags } from '../../fixtures/fixtures';
+import { ADMIN_STATE_PATH } from '../../playwright.config';
test.describe( 'WooCommerce Home', () => {
test.use( { storageState: ADMIN_STATE_PATH } );
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-data.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-data.spec.ts
similarity index 99%
rename from plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-data.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-data.spec.ts
index 591b59cde4..143132f2f3 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-data.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-data.spec.ts
@@ -35,7 +35,7 @@ const test = baseTest.extend( {
},
} );
-let categoryIds, productIds, orderIds, setupPage;
+let categoryIds: number[], productIds: number[], orderIds: number[], setupPage;
test.beforeAll( async ( { browser, restApi } ) => {
// create a couple of product categories
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-overview.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-overview.spec.ts
similarity index 94%
rename from plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-overview.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-overview.spec.ts
index 91e20bd5c1..d3ec35c9b2 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-overview.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-overview.spec.ts
@@ -1,39 +1,26 @@
-const { test, expect, request, Page, Locator } = require( '@playwright/test' );
-const { admin } = require( '../../test-data/data' );
-const { tags } = require( '../../fixtures/fixtures' );
-const { ADMIN_STATE_PATH } = require( '../../playwright.config' );
-const { setOption } = require( '../../utils/options' );
-
-const EXPECTED_SECTION_HEADERS = [ 'Performance', 'Charts', 'Leaderboards' ];
-
-/**
- * @type {number}
- */
-let userId;
-/**
- * @type {Locator}
- */
-let headings_sections;
-/**
- * @type {Locator}
- */
-let heading_performance;
/**
- * @type {Locator}
+ * External dependencies
*/
-let buttons_ellipsis;
-/**
- * @type {Locator}
- */
-let menuitem_moveUp;
-/**
- * @type {Locator}
- */
-let menuitem_moveDown;
+import { test, expect, request } from '@playwright/test';
+import type { Page, Locator } from '@playwright/test';
+
/**
- * @type {Page}
+ * Internal dependencies
*/
-let page;
+import { admin } from '../../test-data/data';
+import { tags } from '../../fixtures/fixtures';
+import { ADMIN_STATE_PATH } from '../../playwright.config';
+import { setOption } from '../../utils/options';
+
+const EXPECTED_SECTION_HEADERS = [ 'Performance', 'Charts', 'Leaderboards' ];
+
+let userId: number;
+let headings_sections: Locator;
+let heading_performance: Locator;
+let buttons_ellipsis: Locator;
+let menuitem_moveUp: Locator;
+let menuitem_moveDown: Locator;
+let page: Page;
const base64String = Buffer.from(
`${ admin.username }:${ admin.password }`
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-settings.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-settings.spec.ts
similarity index 92%
rename from plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-settings.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-settings.spec.ts
index de30bb98ed..a0b6cc00bf 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-settings.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/analytics/analytics-settings.spec.ts
@@ -1,12 +1,17 @@
-const { test, expect, request, Page } = require( '@playwright/test' );
-const { tags } = require( '../../fixtures/fixtures' );
-const { setOption, deleteOption } = require( '../../utils/options' );
-const { ADMIN_STATE_PATH } = require( '../../playwright.config' );
+/**
+ * External dependencies
+ */
+import { test, expect, request } from '@playwright/test';
+import type { Page } from '@playwright/test';
/**
- * @type {Page}
+ * Internal dependencies
*/
-let page;
+import { tags } from '../../fixtures/fixtures';
+import { setOption, deleteOption } from '../../utils/options';
+import { ADMIN_STATE_PATH } from '../../playwright.config';
+
+let page: Page;
test.describe(
'Analytics Settings - Scheduled Import',
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/create-product-attributes.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/create-product-attributes.spec.ts
similarity index 96%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/create-product-attributes.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/create-product-attributes.spec.ts
index 2cef6d9622..111998011a 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/create-product-attributes.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/create-product-attributes.spec.ts
@@ -5,6 +5,7 @@ import {
WC_API_PATH,
WC_ADMIN_API_PATH,
} from '@woocommerce/e2e-utils-playwright';
+import type { Page } from '@playwright/test';
/**
* Internal dependencies
@@ -61,11 +62,7 @@ const test = baseTest.extend( {
},
} );
-/**
- *
- * @param {import('@playwright/test').Page} page
- */
-async function goToAttributesTab( page ) {
+async function goToAttributesTab( page: Page ) {
// There is the chance we might click on the 'Attributes' tab too early. To
// prevent that, we wait until the 'Variations' tab is hidden, which means
// the tabs have been updated.
@@ -85,10 +82,10 @@ async function goToAttributesTab( page ) {
} );
}
async function addAttribute(
- page,
- attributeName,
- attributeValues,
- firstAttribute
+ page: Page,
+ attributeName: string,
+ attributeValues: string,
+ firstAttribute: boolean
) {
if ( ! firstAttribute ) {
await test.step( "Click 'Add new'.", async () => {
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/create-variable-product.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/create-variable-product.spec.ts
similarity index 87%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/create-variable-product.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/create-variable-product.spec.ts
index 46014f9095..8ac91b2794 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/create-variable-product.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/create-variable-product.spec.ts
@@ -1,12 +1,20 @@
-const { test, expect } = require( '@playwright/test' );
-const { variableProducts: utils, api } = require( '../../utils' );
-const { tags } = require( '../../fixtures/fixtures' );
-const { ADMIN_STATE_PATH } = require( '../../playwright.config' );
+/**
+ * External dependencies
+ */
+import { test, expect } from '@playwright/test';
+
+/**
+ * Internal dependencies
+ */
+import { variableProducts as utils, api } from '../../utils';
+import { tags } from '../../fixtures/fixtures';
+import { ADMIN_STATE_PATH } from '../../playwright.config';
+
const { showVariableProductTour } = utils;
const productPageURL = 'wp-admin/post-new.php?post_type=product';
const variableProductName = 'Variable Product with Three Variations';
-let productId;
+let productId: number;
test.describe( 'Add variable product', { tag: tags.GUTENBERG }, () => {
test.use( { storageState: ADMIN_STATE_PATH } );
@@ -99,7 +107,9 @@ test.describe( 'Add variable product', { tag: tags.GUTENBERG }, () => {
} );
await test.step( 'Save product ID for clean up.', async () => {
- productId = page.url().match( /(?<=post=)\d+/ );
+ const match = page.url().match( /(?<=post=)\d+/ );
+ expect( match ).not.toBeNull();
+ productId = Number( match![ 0 ] );
} );
} );
} );
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/create-variations.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/create-variations.spec.ts
similarity index 92%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/create-variations.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/create-variations.spec.ts
index adb93b779f..0ff52a36d8 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/create-variations.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/create-variations.spec.ts
@@ -1,7 +1,14 @@
-const { test, expect } = require( '@playwright/test' );
-const { tags } = require( '../../fixtures/fixtures' );
-const { variableProducts: utils } = require( '../../utils' );
-const { ADMIN_STATE_PATH } = require( '../../playwright.config' );
+/**
+ * External dependencies
+ */
+import { test, expect } from '@playwright/test';
+
+/**
+ * Internal dependencies
+ */
+import { tags } from '../../fixtures/fixtures';
+import { variableProducts as utils } from '../../utils';
+import { ADMIN_STATE_PATH } from '../../playwright.config';
const {
createVariableProduct,
showVariableProductTour,
@@ -10,10 +17,10 @@ const {
productAttributes,
} = utils;
-let expectedGeneratedVariations,
- productId_addManually,
- productId_generateVariations,
- variationsToManuallyCreate;
+let expectedGeneratedVariations: string[][],
+ productId_addManually: number,
+ productId_generateVariations: number,
+ variationsToManuallyCreate: string[][];
test.describe( 'Add variations', { tag: tags.GUTENBERG }, () => {
test.use( { storageState: ADMIN_STATE_PATH } );
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-create-simple.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-create-simple.spec.ts
similarity index 99%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-create-simple.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-create-simple.spec.ts
index b25f17067e..4201ebc477 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-create-simple.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-create-simple.spec.ts
@@ -45,7 +45,7 @@ const productData = {
},
};
-function removeHtmlTags( str ) {
+function removeHtmlTags( str: string ) {
return str.replace( /<\/?[^>]+(>|$)/g, '' );
}
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-delete.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-delete.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-delete.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-delete.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-edit.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-edit.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-edit.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-edit.spec.ts
index 3c71c279ad..2e6723da10 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-edit.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-edit.spec.ts
@@ -4,6 +4,8 @@
import { faker } from '@faker-js/faker';
import { WC_API_PATH } from '@woocommerce/e2e-utils-playwright';
+import type { Page } from '@playwright/test';
+
/**
* Internal dependencies
*/
@@ -11,7 +13,7 @@ import { test as baseTest, expect, tags } from '../../fixtures/fixtures';
import { ADMIN_STATE_PATH } from '../../playwright.config';
import { getFakeProduct } from '../../utils/data';
-async function saveProductChanges( page ) {
+async function saveProductChanges( page: Page ) {
await page
.locator( '#publishing-action' )
.getByRole( 'button', { name: 'Update' } )
@@ -23,7 +25,7 @@ async function saveProductChanges( page ) {
).toBeVisible();
}
-async function saveBulkProductChanges( page ) {
+async function saveBulkProductChanges( page: Page ) {
await page.getByRole( 'button', { name: 'Update' } ).click();
await expect(
page
@@ -32,7 +34,7 @@ async function saveBulkProductChanges( page ) {
).toBeVisible();
}
-async function selectProduct( page, product ) {
+async function selectProduct( page: Page, product ) {
await page
.getByLabel( `Select ${ product.name }` )
.and(
@@ -41,7 +43,7 @@ async function selectProduct( page, product ) {
.click();
}
-async function selectAllProducts( page, products ) {
+async function selectAllProducts( page: Page, products ) {
for ( const product of products ) {
await selectProduct( page, product );
}
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-export.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-export.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-export.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-export.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-grouped.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-grouped.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-grouped.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-grouped.spec.ts
index 7a1d9998e6..221f955b18 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-grouped.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-grouped.spec.ts
@@ -13,7 +13,7 @@ const productPrice = '18.16';
const simpleProductName = 'Simple single product';
const groupedProductName = 'Grouped single product';
-let simpleProductId, simpleProduct2Id, groupedProductId;
+let simpleProductId: number, simpleProduct2Id: number, groupedProductId: number;
test.describe(
'Grouped Product Page',
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-images.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-images.spec.ts
similarity index 98%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-images.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-images.spec.ts
index f41643ec5e..b399cf4e52 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-images.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-images.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
@@ -9,7 +10,11 @@ import { WC_API_PATH } from '@woocommerce/e2e-utils-playwright';
import { test as baseTest, expect } from '../../fixtures/fixtures';
import { ADMIN_STATE_PATH } from '../../playwright.config';
-async function addImageFromLibrary( page, imageName, actionButtonName ) {
+async function addImageFromLibrary(
+ page: Page,
+ imageName: string,
+ actionButtonName: string
+) {
await page.getByRole( 'tab', { name: 'Media Library' } ).click();
await page.getByRole( 'searchbox', { name: 'Search' } ).fill( imageName );
const imageLocator = page.getByLabel( imageName ).nth( 0 );
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-import-csv.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-import-csv.spec.ts
similarity index 98%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-import-csv.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-import-csv.spec.ts
index b7d533bfb0..364a58ca89 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-import-csv.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-import-csv.spec.ts
@@ -15,9 +15,9 @@ const filePathOverride = path.resolve(
'tests/e2e-pw/test-data/sample_products_override.csv'
);
-const productIds = [];
-const categoryIds = [];
-const attributeIds = [];
+const productIds: number[] = [];
+const categoryIds: number[] = [];
+const attributeIds: number[] = [];
const productNames = [
'Imported V-Neck T-Shirt',
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-linked-products.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-linked-products.spec.ts
similarity index 98%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-linked-products.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-linked-products.spec.ts
index 9187879aa2..df3d698dc5 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-linked-products.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-linked-products.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
@@ -42,7 +43,7 @@ test.describe(
'Products > Related products',
{ tag: [ tags.GUTENBERG ] },
() => {
- async function navigate( page, productId ) {
+ async function navigate( page: Page, productId: number ) {
await test.step( 'Navigate to product edit page', async () => {
await page.goto(
`wp-admin/post.php?post=${ productId }&action=edit`
@@ -67,7 +68,7 @@ test.describe(
} );
}
- async function updateProduct( page ) {
+ async function updateProduct( page: Page ) {
await test.step( 'update the product', async () => {
// extra click somewhere in the page as a workaround for update button click not always working
await page
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-reviews.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-reviews.spec.ts
similarity index 100%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-reviews.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-reviews.spec.ts
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-search.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-search.spec.ts
similarity index 96%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-search.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-search.spec.ts
index 03b50d9964..2db4d9a14f 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-search.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-search.spec.ts
@@ -6,10 +6,10 @@ import { WC_API_PATH } from '@woocommerce/e2e-utils-playwright';
/**
* Internal dependencies
*/
-import { test, expect } from '../../fixtures/fixtures.js';
+import { test, expect } from '../../fixtures/fixtures';
import { ADMIN_STATE_PATH } from '../../playwright.config';
-let productId;
+let productId: number;
const productName = `Unique thing that we sell ${ new Date()
.getTime()
.toString() }`;
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-settings.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-settings.spec.ts
similarity index 98%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-settings.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-settings.spec.ts
index 46660e590c..0cafcb9d24 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-settings.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-settings.spec.ts
@@ -1,7 +1,7 @@
/**
* Internal dependencies
*/
-import { test, expect } from '../../fixtures/fixtures.js';
+import { test, expect } from '../../fixtures/fixtures';
import { ADMIN_STATE_PATH } from '../../playwright.config';
// Suppress unused variable warnings
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-tags-attributes.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-tags-attributes.spec.ts
similarity index 98%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-tags-attributes.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-tags-attributes.spec.ts
index db2b7ebfe2..d926c97144 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-tags-attributes.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-tags-attributes.spec.ts
@@ -31,13 +31,13 @@ const productAttributeTerm = 'red';
const simpleProductName = 'Single Product With Tags';
-let product1Id,
- product2Id,
- product3Id,
- productTag1Id,
- productTag2Id,
- productTag3Id,
- attributeId;
+let product1Id: number,
+ product2Id: number,
+ product3Id: number,
+ productTag1Id: number,
+ productTag2Id: number,
+ productTag3Id: number,
+ attributeId: number;
test.describe(
'Browse product tags and attributes from the product page',
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/product-variable.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/product-variable.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/product-variable.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/product-variable.spec.ts
index d53976f481..340e210540 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/product-variable.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/product-variable.spec.ts
@@ -1,6 +1,7 @@
/**
* External dependencies
*/
+import type { Page } from '@playwright/test';
import { WC_API_PATH } from '@woocommerce/e2e-utils-playwright';
/**
@@ -139,10 +140,10 @@ const variations2 = [
];
async function selectVariation(
- page,
- variations,
- price,
- productName,
+ page: Page,
+ variations: { locatorId: string; value: string }[],
+ price: number | string,
+ productName: string,
addToCart = true
) {
for ( const v of variations ) {
@@ -154,7 +155,7 @@ async function selectVariation(
}
await expect(
- page.getByRole( 'alert' ).filter( { hasText: price } )
+ page.getByRole( 'alert' ).filter( { hasText: String( price ) } )
).toBeVisible();
if ( addToCart ) {
@@ -173,7 +174,7 @@ test.describe(
() => {
const variableProductName = `Variable single product ${ Date.now() }`;
const slug = variableProductName.replace( / /gi, '-' ).toLowerCase();
- let variableProductId;
+ let variableProductId: number;
let calcTaxesState;
test.beforeAll( async ( { restApi } ) => {
@@ -308,7 +309,7 @@ test.describe(
() => {
const variableProductName = `Variable single product ${ Date.now() }`;
const slug = variableProductName.replace( / /gi, '-' ).toLowerCase();
- let variableProductId;
+ let variableProductId: number;
let calcTaxesState;
test.beforeAll( async ( { restApi } ) => {
diff --git a/plugins/woocommerce/tests/e2e-pw/tests/product/update-variations.spec.js b/plugins/woocommerce/tests/e2e-pw/tests/product/update-variations.spec.ts
similarity index 97%
rename from plugins/woocommerce/tests/e2e-pw/tests/product/update-variations.spec.js
rename to plugins/woocommerce/tests/e2e-pw/tests/product/update-variations.spec.ts
index 309ba8190a..4be9621ae1 100644
--- a/plugins/woocommerce/tests/e2e-pw/tests/product/update-variations.spec.js
+++ b/plugins/woocommerce/tests/e2e-pw/tests/product/update-variations.spec.ts
@@ -1,3 +1,8 @@
+/**
+ * External dependencies
+ */
+import type { Page } from '@playwright/test';
+
/**
* Internal dependencies
*/
@@ -23,14 +28,14 @@ const productHeight = '15';
const stockAmount = '100';
const lowStockAmount = '10';
-let productId_indivEdit,
- productId_bulkEdit,
- productId_deleteAll,
- productId_manageStock,
- productId_variationDefaults,
- productId_removeVariation,
+let productId_indivEdit: number,
+ productId_bulkEdit: number,
+ productId_deleteAll: number,
+ productId_manageStock: number,
+ productId_variationDefaults: number,
+ productId_removeVariation: number,
defaultVariation,
- variationIds_indivEdit;
+ variationIds_indivEdit: number[];
test.describe( 'Update variations', { tag: tags.GUTENBERG }, () => {
test.use( { storageState: ADMIN_STATE_PATH } );
@@ -106,7 +111,7 @@ test.describe( 'Update variations', { tag: tags.GUTENBERG }, () => {
await deleteProductsAddedByTests();
} );
- async function gotToVariationsTab( page ) {
+ async function gotToVariationsTab( page: Page ) {
await test.step( 'Click on the "Variations" tab.', async () => {
await expect( async () => {
await page