Socket
Book a DemoInstallSign in
Socket

@woocommerce/e2e-core-tests

Package Overview
Dependencies
Maintainers
19
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@woocommerce/e2e-core-tests

End-To-End (E2E) tests for WooCommerce

latest
Source
npmnpm
Version
0.2.0
Version published
Weekly downloads
2
Maintainers
19
Weekly downloads
 
Created
Source

WooCommerce Core End to End Test Suite

This package contains the automated end-to-end tests for WooCommerce.

Table of contents

  • Pre-requisites
  • Setting up core tests
  • Test functions
  • Contributing a new test

Pre-requisites

Setting up the test environment

Follow E2E setup instructions.

Setting up core tests

Version 0.2.0 or newer

Version 0.2.0 added a test installer that will populate the tests/e2e/specs folder with test scripts for all the current core test suite. It also creates sample configuration files including all the configuration data needed to run the core tests.

  • Install the e2e-environment npm install @woocommerce/e2e-environment --save-dev
  • Run the installer npx wc-e2e install @woocommerce/e2e-core-tests
  • Merge the sample configuration files:
    • tests/e2e/docker/woocommerce.e2e-core-tests.sh => initialize.sh
    • tests/e2e/config/default-woocommerce.e2e-core-tests.json => default.json

Version 0.1.X or other test runner

  • Create the folder tests/e2e/specs in your repository if it does not exist.
  • To add a core test to your test suite, create a new .test.js file within tests/e2e/specs . Example code to run all the shopper tests:

const { runShopperTests } = require( '@woocommerce/e2e-core-tests' );

runShopperTests();

Retrying/Re-running tests

On a new site, the setup and activation tests prepare the site for the remainder of the tests. To retry/rerun the test suite on a site where setup/onboarding test have already run use the environment variable E2E_RETEST=1.

Test functions

The functions to access the core tests are:

Activation and setup

  • runSetupOnboardingTests - Run all setup and onboarding tests
    • runActivationTest - Merchant can activate WooCommerce
    • runOnboardingFlowTest - Merchant can complete onboarding flow
    • runTaskListTest - Merchant can complete onboarding task list
    • runInitialStoreSettingsTest - Merchant can complete initial settings

Merchant

  • runMerchantTests - Run all merchant tests
    • runAddShippingClassesTest - Merchant can create shipping classes and let shopper test them
    • runAddNewShippingZoneTest - Merchant can create shipping zones and let shopper test them
    • runAddSimpleProductTest - Merchant can create a simple product
    • runAddVariableProductTest - Merchant can create a variable product
    • runCreateCouponTest - Merchant can create coupon
    • runCreateOrderTest - Merchant can create order
    • runMerchantOrdersCustomerPaymentPage - Merchant can visit the customer payment page
    • runMerchantOrderEmailsTest - Merchant can receive order emails and resend emails by Order Actions
    • runEditOrderTest - Merchant can edit an order in the dashboard
    • runOrderStatusFilterTest - Merchant can filter orders by order status
    • runOrderRefundTest - Merchant can refund an order
    • runOrderApplyCouponTest - Merchant can apply a coupon to an order
    • runOrderSearchingTest - Merchant can search for order via different terms
    • runProductEditDetailsTest - Merchant can edit an existing product
    • runProductSearchTest - Merchant can search for a product and view it
    • runProductSettingsTest - Merchant can update product settings
    • runTaxSettingsTest - Merchant can update tax settings
    • runUpdateGeneralSettingsTest - Merchant can update general settings
    • runMerchantOrderEmailsTest - Merchant can receive order emails and resend emails by Order Actions
    • runAnalyticsPageLoadsTest - Merchant can load and see all pages in Analytics
    • runImportProductsTest - Merchant can import products via CSV file
    • runInitiateWccomConnectionTest - Merchant can initiate connection to WooCommerce.com
    • runAdminPageLoadTests - Merchant can load pages from the WP Admin sidebar

Shopper

  • runShopperTests - Run all shopper tests
    • runCartApplyCouponsTest - Shopper can use coupons on cart
    • runCartPageTest - Shopper can view and update cart
    • runCheckoutApplyCouponsTest - Shopper can use coupons on checkout
    • runCheckoutPageTest - Shopper can complete checkout
    • runMyAccountPageTest - Shopper can access my account page
    • runMyAccountPayOrderTest - Shopper can pay for their order in My Account
    • runProductBrowseSearchSortTest - Shopper can browse, search & sort products
    • runSingleProductPageTest - Shopper can view single product page in many variations (simple, variable, grouped)
    • runVariableProductUpdateTest - Shopper can view and update variations on a variable product
    • runCheckoutCreateAccountTest - Shopper can create an account during checkout
    • runCheckoutLoginAccountTest - Shopper can login to an account during checkout
    • runMyAccountCreateAccountTest - Shopper can create an account via my account page
    • runCartCalculateShippingTest - Shopper can calculate shipping in the cart
    • runCartRedirectionTest - Shopper is redirected to the cart page after adding to cart
    • runOrderEmailReceivingTest - Shopper can receive an email for his order

REST API

  • runApiTests - Run all API tests
    • runExternalProductAPITest - Can create, read, and delete an external product
    • runGroupedProductAPITest - Can create, read, and delete a grouped product
    • runVariableProductAPITest - Can create, read, and delete a variable product and its variations
    • runCouponApiTest - Can create, read, and delete a coupon
    • runOrderApiTest - Can create, read, and delete an order

Contributing a new test

  • In your branch create a new example-test-name.test.js under the appropriate folder in the specs directory.
  • Jest does not allow its global functions to be accessed outside the jest environment. To allow the test code to be published in a package import any jest global functions used in your test
const {
	it,
	describe,
	beforeAll,
} = require( '@jest/globals' );
  • Wrap your test in a function and export it
const runExampleTestName = () => {
	describe('Example test', () => {
		beforeAll(async () => {
			// ...
		});

		it('do some example action', async () => {
            // ...
		});
        // ...
    });
});

module.exports = runExampleTestName;
const runExampleTestName = require( './grouping/example-test-name.test' );
// ...
module.exports = {
// ...
    runExampleTestName,
}

FAQs

Package last updated on 03 Feb 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts