Consolidate and move password protected product test (#45752)
* Consolidate and move password protected product test * Add changefile(s) from automation for the following project(s): woocommerce-blocks * Move test to non side effect and remove remaining empty test file --------- Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
parent
40b14aea16
commit
5aac82b0fe
|
@ -1,59 +0,0 @@
|
|||
/**
|
||||
* External dependencies
|
||||
*/
|
||||
import { test, expect } from '@woocommerce/e2e-playwright-utils';
|
||||
import { cli } from '@woocommerce/e2e-utils';
|
||||
|
||||
const product = {
|
||||
name: 'Protected Product',
|
||||
slug: 'protected-product',
|
||||
password: 'password',
|
||||
};
|
||||
|
||||
test.describe( 'Single Product Template', () => {
|
||||
let id: null | string = null;
|
||||
test.beforeEach( async ( { admin, page } ) => {
|
||||
await admin.visitAdminPage( `/post-new.php?post_type=product` );
|
||||
|
||||
const input = page.locator( '#title' );
|
||||
await input.fill( product.name );
|
||||
await page.getByRole( 'button', { name: 'Edit visibility' } ).click();
|
||||
|
||||
await page.locator( '#visibility-radio-password' ).click();
|
||||
await page.locator( '#post_password' ).fill( product.password );
|
||||
await page.waitForResponse( ( response ) =>
|
||||
response.url().includes( 'admin-ajax.php' )
|
||||
);
|
||||
await page.locator( '#publish.button-primary' ).click();
|
||||
await page.waitForSelector(
|
||||
'#woocommerce-product-updated-message-view-product__link'
|
||||
);
|
||||
const url = new URL( page.url() );
|
||||
const queryParams = new URLSearchParams( url.search );
|
||||
id = queryParams.get( 'post' );
|
||||
} );
|
||||
|
||||
test.afterAll( async () => {
|
||||
await cli(
|
||||
`npm run wp-env run tests-cli -- wp post delete ${ id } --force`
|
||||
);
|
||||
} );
|
||||
|
||||
test.describe( `should render a password input when the product is protected `, () =>
|
||||
test( 'add product specific classes to the body', async ( {
|
||||
page,
|
||||
} ) => {
|
||||
await page.goto( `/product/${ product.slug }` );
|
||||
const placeholder = page.getByText(
|
||||
'This content is password protected. To view it please enter your password below:'
|
||||
);
|
||||
|
||||
await expect( placeholder ).toBeVisible();
|
||||
|
||||
await page.getByLabel( 'Password' ).fill( 'password' );
|
||||
|
||||
await page.getByRole( 'button', { name: 'Enter' } ).click();
|
||||
|
||||
await expect( placeholder ).toBeHidden();
|
||||
} ) );
|
||||
} );
|
|
@ -54,3 +54,20 @@ for ( const { classes, product, frontendPage } of products ) {
|
|||
} );
|
||||
} ) );
|
||||
}
|
||||
|
||||
test( 'shows password form in products protected with password', async ( {
|
||||
page,
|
||||
} ) => {
|
||||
// Sunglasses are defined as requiring password in /bin/scripts/products.sh.
|
||||
await page.goto( '/product/sunglasses/' );
|
||||
await expect(
|
||||
page.getByText( 'This content is password protected.' ).first()
|
||||
).toBeVisible();
|
||||
|
||||
// Verify after introducing the password, the page is visible.
|
||||
await page.getByLabel( 'Password:' ).fill( 'password' );
|
||||
await page.getByRole( 'button', { name: 'Enter' } ).click();
|
||||
await expect(
|
||||
page.getByRole( 'link', { name: 'Description' } )
|
||||
).toBeVisible();
|
||||
} );
|
||||
|
|
|
@ -8,23 +8,6 @@ test.describe( 'Single Product template', async () => {
|
|||
await requestUtils.deleteAllTemplates( 'wp_template' );
|
||||
} );
|
||||
|
||||
test( 'shows password form in products protected with password', async ( {
|
||||
page,
|
||||
} ) => {
|
||||
// Sunglasses are defined as requiring password in /bin/scripts/products.sh.
|
||||
await page.goto( '/product/sunglasses/' );
|
||||
await expect(
|
||||
page.getByText( 'This content is password protected.' ).first()
|
||||
).toBeVisible();
|
||||
|
||||
// Verify after introducing the password, the page is visible.
|
||||
await page.getByLabel( 'Password:' ).fill( 'password' );
|
||||
await page.getByRole( 'button', { name: 'Enter' } ).click();
|
||||
await expect(
|
||||
page.getByRole( 'link', { name: 'Description' } )
|
||||
).toBeVisible();
|
||||
} );
|
||||
|
||||
test( 'loads the Single Product template for a specific product', async ( {
|
||||
admin,
|
||||
editorUtils,
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Significance: patch
|
||||
Type: dev
|
||||
Comment: Consolidates/moves the redundant test for password protected product.
|
||||
|
Loading…
Reference in New Issue