woocommerce/plugins/woocommerce-blocks/tests/e2e/utils/constants.ts

35 lines
1.6 KiB
TypeScript
Raw Normal View History

/**
* External dependencies
*/
import path from 'path';
export const BLOCK_THEME_WITH_TEMPLATES_SLUG = 'theme-with-woo-templates';
export const BLOCK_THEME_WITH_TEMPLATES_NAME = 'Theme with Woo Templates';
export const BLOCK_THEME_SLUG = 'twentytwentyfour';
export const BLOCK_THEME_NAME = 'Twenty Twenty-Four';
export const BLOCK_CHILD_THEME_WITH_BLOCK_NOTICES_FILTER_SLUG = `${ BLOCK_THEME_SLUG }-child__block-notices-filter`;
export const BLOCK_CHILD_THEME_WITH_BLOCK_NOTICES_TEMPLATE_SLUG = `${ BLOCK_THEME_SLUG }-child__block-notices-template`;
export const BLOCK_CHILD_THEME_WITH_CLASSIC_NOTICES_TEMPLATE_SLUG = `${ BLOCK_THEME_SLUG }-child__classic-notices-template`;
export const CLASSIC_THEME_SLUG = 'storefront';
export const CLASSIC_THEME_NAME = 'Storefront';
export const CLASSIC_CHILD_THEME_WITH_BLOCK_NOTICES_FILTER_SLUG = `${ CLASSIC_THEME_SLUG }-child__block-notices-filter`;
export const CLASSIC_CHILD_THEME_WITH_BLOCK_NOTICES_TEMPLATE_SLUG = `${ CLASSIC_THEME_SLUG }-child__block-notices-template`;
export const CLASSIC_CHILD_THEME_WITH_CLASSIC_NOTICES_TEMPLATE_SLUG = `${ CLASSIC_THEME_SLUG }-child__classic-notices-template`;
export const BASE_URL = 'http://localhost:8889';
Playwright E2E tests: Multiple signed in roles (https://github.com/woocommerce/woocommerce-blocks/pull/10561) * Convert checkout place order E2E tests to Playwright * Add "gotoMyAccount" method * Create login/logout utility functions * Use the existing "customer" test data * Complete the place order test cases * Fix "My Account" page title * Fix rebase * Reset My account page title * Check for heading instead of the page title * Check for heading in login/logout functions * Fix all failing tests * Add guest/customer/admin roles * Update the auth setup * Register the auth setup within Playwright * Update testing cases * Add generated auth files to .gitignore * Tidy up comments Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> * Remove unnecessary comment Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> * Update comments Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> * Remove unnecessary comment Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> * Update comment for Guest case Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> * Remove confusing comment * Remove another unnecessary comment * Remove unnecessary Playwright project dependency * Tidy up the file structure and constants * Fix mixed up test descriptions * Remove commented code Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> * Remove unnecessary function from frontend-utils * Refactor testing cases * Rename testing file * Delete unused testing file * Ensure we're logged out before trying to log in as a user * Log out before each authentication setup step * Ensure tests requiring admin are logged in * Log in as admin during block theme setup * Fix Playwright strict mode violation * Run Multiple sign-in roles to the global-setup phase In this step of the Playwright's setup, we can add the multiple sign-in roles and keeping the admin logged by default. This fixes the issue of failing tests `logged out` error. * Remove unnecessary login as admin * Remove "auth.setup" dependency since the logic lives in the global setup instead * Remove unnecessary login as admin from test files The admin profile is set by default --------- Co-authored-by: Thomas Roberts <5656702+opr@users.noreply.github.com> Co-authored-by: Thomas Roberts <thomas.roberts@automattic.com>
2023-12-08 16:44:59 +00:00
export const WP_ARTIFACTS_PATH =
process.env.WP_ARTIFACTS_PATH ||
path.join( process.cwd(), 'tests/e2e/artifacts' );
export const STORAGE_STATE_PATH =
process.env.STORAGE_STATE_PATH ||
path.join( WP_ARTIFACTS_PATH, 'storage-states/admin.json' );
// User roles storage states
export const adminFile = STORAGE_STATE_PATH;
export const customerFile = path.join(
path.dirname( STORAGE_STATE_PATH ),
'customer.json'
);
export const guestFile = { cookies: [], origins: [] };