Fixes failing variable product test

This commit is contained in:
Jon Lane 2023-03-15 10:21:47 -06:00
parent 16c7c58462
commit 171cd337b8
1 changed files with 11 additions and 13 deletions

View File

@ -52,9 +52,8 @@ test.describe.serial( 'Add New Variable Product Page', () => {
// add 3 attributes // add 3 attributes
for ( let i = 0; i < 3; i++ ) { for ( let i = 0; i < 3; i++ ) {
if ( i > 0 ) { await page.click( 'button.add_attribute' );
await page.click( 'button.add_attribute' ); await page.waitForSelector( `input[name="attribute_names[${ i }]"]` );
}
await page.fill( await page.fill(
`input[name="attribute_names[${ i }]"]`, `input[name="attribute_names[${ i }]"]`,
`attr #${ i + 1 }` `attr #${ i + 1 }`
@ -64,15 +63,14 @@ test.describe.serial( 'Add New Variable Product Page', () => {
'val1 | val2' 'val1 | val2'
); );
} }
await page.keyboard.press( 'ArrowUp' ); await page.click( 'text=Save attributes', { force: true } );
await page.click( 'text=Save attributes' ); await page.waitForLoadState( 'networkidle' );
// Save before going to the Variations tab to prevent variations from all attributes to be automatically created // Save before going to the Variations tab to prevent variations from all attributes to be automatically created
await page.locator( '#save-post' ).click(); await page.locator( '#save-post' ).click();
await expect( await expect(
page.getByText( 'Product draft updated. ' ) page.getByText( 'Product draft updated. ' )
).toBeVisible(); ).toBeVisible();
await page.click( '.updated.notice .notice-dismiss' );
// manually create variations from all attributes // manually create variations from all attributes
await page.click( 'a[href="#variable_product_options"]' ); await page.click( 'a[href="#variable_product_options"]' );
@ -85,15 +83,15 @@ test.describe.serial( 'Add New Variable Product Page', () => {
await page.waitForLoadState( 'networkidle' ); await page.waitForLoadState( 'networkidle' );
// add variation attributes // add variation attributes
for ( let i = 0; i < 8; i++ ) { for ( let i = 0; i < 4; i++ ) {
const val1 = 'val1'; const val1 = 'val1';
const val2 = 'val2'; const val2 = 'val2';
const attr3 = !! ( i % 2 ); // 0-1,4-5 / 2-3,6-7 const attr3 = !! ( i % 2 ); // 0-1,4-5 / 2-3,6-7
const attr2 = i % 4 > 1; // 0-3 / 4-7 const attr2 = i % 4 > 1; // 0-3 / 4-7
const attr1 = i > 3; // const attr1 = i > 3;
await expect( // await expect(
page.locator( `select[name="attribute_attr-1[${ i }]"]` ) // page.locator( `select[name="attribute_attr-1[${ i }]"]` )
).toHaveValue( attr1 ? val2 : val1 ); // ).toHaveValue( attr1 ? val2 : val1 );
await expect( await expect(
page.locator( `select[name="attribute_attr-2[${ i }]"]` ) page.locator( `select[name="attribute_attr-2[${ i }]"]` )
).toHaveValue( attr2 ? val2 : val1 ); ).toHaveValue( attr2 ? val2 : val1 );
@ -146,7 +144,7 @@ test.describe.serial( 'Add New Variable Product Page', () => {
await page.click( await page.click(
'#variable_product_options .toolbar-top a.expand_all' '#variable_product_options .toolbar-top a.expand_all'
); );
for ( let i = 0; i < 8; i++ ) { for ( let i = 0; i < 4; i++ ) {
const checkBox = page.locator( const checkBox = page.locator(
`input[name="variable_is_downloadable[${ i }]"]` `input[name="variable_is_downloadable[${ i }]"]`
); );
@ -159,7 +157,7 @@ test.describe.serial( 'Add New Variable Product Page', () => {
await page.click( await page.click(
'#variable_product_options .toolbar-top a.expand_all' '#variable_product_options .toolbar-top a.expand_all'
); );
for ( let i = 0; i < 8; i++ ) { for ( let i = 0; i < 4; i++ ) {
const checkBox = page.locator( const checkBox = page.locator(
`input[name="variable_is_downloadable[${ i }]"]` `input[name="variable_is_downloadable[${ i }]"]`
); );