woocommerce/plugins/woocommerce-blocks/tests/e2e/specs/shopper/tax.test.js

80 lines
2.6 KiB
JavaScript
Raw Normal View History

Critical flow: Can see correct tax (https://github.com/woocommerce/woocommerce-blocks/pull/5900) * Tax is displayed correctly e2e test * Add extra utils to shopper * add single e2e test script oin package.json * Feedback changes from Niels * Test tax is correct on summary page * Check if CI test passes * Longer timeout for tax test * change timeout in jest config * increate jest timeout * Test * Test * Test * setTimeout outside of tests to 120000 * Address raluca's feedback and timeout everywheregaa * Increase timeout on for search box * set jest timeout to 120000 * Raluca's suggestions * Debug * Increase search timeout to 5000 * Only run Tax e2e tests in CI for quicker debug - REMOVE THIS * use waitforSelector * 30s delay for toMatchElement * Let'shope this works * Remove toMatchElement * waitForSelector * Run debug test only * Debug tax test * debug taxes * shopper using toMatchElement again * Remove the 30000 timeout delay from toMatchElement * Run all tests but only once * Remove tax test * Revert "Remove tax test" This reverts commit 7db34120e1e91f4fd26514fdb9525cac2a6066bb. * Delete the minicart test * Revert "Revert "Remove tax test"" This reverts commit 31dd654e52f37fcd02ccd25336958248bef495c6. * Revert "Delete the minicart test" This reverts commit 5595f0834a975d097a300bc0c7cbf643caa8b764. * tax test * block addToCart * Put back block functions * Refactor block.addToCart * mini-cart e2e test uses shopper.block.emptyCart() * only run shopper tests in CI * Run frontend and shopper tests and change waitFor -> waitForTimeout * Run frontend tests in CI * Run CI e2e tests again * Skip legacy template blocks * Skip legacy template test but run all others * Switch to storefront instead of twentytwentyone after legacy-template-blocks tests finish * Tidy up * fix typo * Fix ESLint issue Co-authored-by: Saad Tarhi <saad.trh@gmail.com> Co-authored-by: Saad Tarhi <saad.tarhi@automattic.com>
2022-03-08 14:50:16 +00:00
/**
* Internal dependencies
*/
import { shopper } from '../../../utils';
import { Taxes, Products } from '../../fixtures/fixture-data';
import {
getExpectedTaxes,
getTaxesFromCurrentPage,
getTaxesFromOrderSummaryPage,
showTaxes,
} from '../../../utils/taxes';
const taxRates = Taxes();
const productWooSingle1 = Products().find(
( prod ) => prod.name === 'Woo Single #1'
);
if ( process.env.WOOCOMMERCE_BLOCKS_PHASE < 2 )
// eslint-disable-next-line jest/no-focused-tests
test.only( `skipping ${ block.name } tests`, () => {} );
Critical flow: Can see correct tax (https://github.com/woocommerce/woocommerce-blocks/pull/5900) * Tax is displayed correctly e2e test * Add extra utils to shopper * add single e2e test script oin package.json * Feedback changes from Niels * Test tax is correct on summary page * Check if CI test passes * Longer timeout for tax test * change timeout in jest config * increate jest timeout * Test * Test * Test * setTimeout outside of tests to 120000 * Address raluca's feedback and timeout everywheregaa * Increase timeout on for search box * set jest timeout to 120000 * Raluca's suggestions * Debug * Increase search timeout to 5000 * Only run Tax e2e tests in CI for quicker debug - REMOVE THIS * use waitforSelector * 30s delay for toMatchElement * Let'shope this works * Remove toMatchElement * waitForSelector * Run debug test only * Debug tax test * debug taxes * shopper using toMatchElement again * Remove the 30000 timeout delay from toMatchElement * Run all tests but only once * Remove tax test * Revert "Remove tax test" This reverts commit 7db34120e1e91f4fd26514fdb9525cac2a6066bb. * Delete the minicart test * Revert "Revert "Remove tax test"" This reverts commit 31dd654e52f37fcd02ccd25336958248bef495c6. * Revert "Delete the minicart test" This reverts commit 5595f0834a975d097a300bc0c7cbf643caa8b764. * tax test * block addToCart * Put back block functions * Refactor block.addToCart * mini-cart e2e test uses shopper.block.emptyCart() * only run shopper tests in CI * Run frontend and shopper tests and change waitFor -> waitForTimeout * Run frontend tests in CI * Run CI e2e tests again * Skip legacy template blocks * Skip legacy template test but run all others * Switch to storefront instead of twentytwentyone after legacy-template-blocks tests finish * Tidy up * fix typo * Fix ESLint issue Co-authored-by: Saad Tarhi <saad.trh@gmail.com> Co-authored-by: Saad Tarhi <saad.tarhi@automattic.com>
2022-03-08 14:50:16 +00:00
describe( 'Shopper -> Tax', () => {
beforeEach( async () => {
await shopper.block.emptyCart();
} );
describe( '"Enable tax rate calculations" is unchecked in WC settings -> general', () => {
it( 'Tax is not displayed', async () => {
await showTaxes( false );
await shopper.goToShop();
await shopper.block.searchForProduct( productWooSingle1.name );
await shopper.addToCart();
await shopper.block.goToCart();
const cartTaxes = await getTaxesFromCurrentPage();
expect( cartTaxes ).toEqual( [] );
await shopper.block.goToCheckout();
const checkoutTaxes = await getTaxesFromCurrentPage();
expect( checkoutTaxes ).toEqual( [] );
await shopper.block.fillInCheckoutWithTestData();
await shopper.block.placeOrder();
await page.waitForSelector( 'h1.entry-title' );
const orderSummaryTaxes = await getTaxesFromOrderSummaryPage(
taxRates.filter( ( taxRate ) => taxRate.country === 'US' )
);
expect( orderSummaryTaxes ).toEqual( [] );
} );
} );
describe( '"Enable tax rate calculations" is checked in WC settings -> general', () => {
it( 'Tax is displayed correctly on Cart & Checkout ', async () => {
await showTaxes( true );
await shopper.goToShop();
await shopper.block.searchForProduct( productWooSingle1.name );
await shopper.addToCart();
await shopper.block.goToCart();
const expectedTaxes = getExpectedTaxes( taxRates, 'US', [
productWooSingle1,
] );
const cartTaxes = await getTaxesFromCurrentPage();
expect( cartTaxes.sort() ).toEqual( expectedTaxes.sort() );
await shopper.block.goToCheckout();
const checkoutTaxes = await getTaxesFromCurrentPage();
expect( checkoutTaxes.sort() ).toEqual( expectedTaxes.sort() );
await shopper.block.fillInCheckoutWithTestData();
await shopper.block.placeOrder();
await page.waitForSelector( 'h1.entry-title' );
const orderSummaryTaxes = await getTaxesFromOrderSummaryPage(
taxRates.filter( ( taxRate ) => taxRate.country === 'US' )
);
expect( orderSummaryTaxes.sort() ).toEqual( expectedTaxes.sort() );
} );
} );
} );