/* eslint-disable jest/no-export*/ /** * Internal dependencies */ const { merchant } = require('@woocommerce/e2e-utils'); const { lorem, helpers } = require('faker'); const runAddShippingClassesTest = () => { describe('Merchant can add shipping classes', () => { beforeAll(async () => { await merchant.login(); // Go to Shipping Classes page await merchant.openSettings('shipping', 'classes'); }); it('can add shipping classes', async () => { const shippingClassSlug = { name: lorem.words(), slug: lorem.slug(), description: lorem.sentence() }; const shippingClassNoSlug = { name: lorem.words(3), slug: '', description: lorem.sentence() }; const shippingClasses = [shippingClassSlug, shippingClassNoSlug]; // Add shipping classes for (const { name, slug, description } of shippingClasses) { await expect(page).toClick('.wc-shipping-class-add'); await expect(page).toFill( '.editing:last-child [data-attribute="name"]', name ); await expect(page).toFill( '.editing:last-child [data-attribute="slug"]', slug ); await expect(page).toFill( '.editing:last-child [data-attribute="description"]', description ); } await expect(page).toClick('.wc-shipping-class-save'); // Set the expected auto-generated slug shippingClassNoSlug.slug = helpers.slugify( shippingClassNoSlug.name ); // Verify that the specified shipping classes were saved for (const { name, slug, description } of shippingClasses) { const row = await expect( page ).toMatchElement('.wc-shipping-class-rows tr', { text: slug }); await expect(row).toMatchElement( '.wc-shipping-class-name', name ); await expect(row).toMatchElement( '.wc-shipping-class-description', description ); } }); }); }; module.exports = runAddShippingClassesTest;