woocommerce/plugins/woocommerce-admin/packages/js-tests/src/setup-globals.js

131 lines
2.6 KiB
JavaScript
Raw Normal View History

/**
* External dependencies
*/
import { setLocaleData } from '@wordpress/i18n';
import { registerStore } from '@wordpress/data';
import 'regenerator-runtime/runtime';
// Set up `wp.*` aliases. Doing this because any tests importing wp stuff will
// likely run into this.
global.wp = {
shortcode: {
next() {},
regexp: jest.fn().mockReturnValue( new RegExp() ),
},
};
global.wc = {};
const wordPressPackages = [ 'element', 'date', 'data' ];
const wooCommercePackages = [
'components',
'csv',
'currency',
'date',
'navigation',
'number',
'data',
];
global.wcTracks = {
isEnabled: false,
};
// aliases
global.wcSettings = {
adminUrl: 'https://vagrant.local/wp/wp-admin/',
countries: [],
currency: {
code: 'USD',
precision: 2,
symbol: '$',
symbolPosition: 'left',
decimalSeparator: '.',
priceFormat: '%1$s%2$s',
thousandSeparator: ',',
},
defaultDateRange: 'period=month&compare=previous_year',
2018-07-04 01:50:12 +00:00
date: {
dow: 0,
},
locale: {
siteLocale: 'en_US',
userLocale: 'en_US',
weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
},
2018-10-18 09:34:37 +00:00
orderStatuses: {
2018-11-28 02:58:17 +00:00
pending: 'Pending payment',
processing: 'Processing',
'on-hold': 'On hold',
completed: 'Completed',
cancelled: 'Cancelled',
refunded: 'Refunded',
failed: 'Failed',
2018-10-18 09:34:37 +00:00
},
2019-05-22 21:43:04 +00:00
wcAdminSettings: {
woocommerce_actionable_order_statuses: [],
woocommerce_excluded_report_order_statuses: [],
},
dataEndpoints: {
countries: [],
performanceIndicators: [
{
chart: 'total_sales',
label: 'Total sales',
stat: 'revenue/total_sales',
},
{
chart: 'net_revenue',
label: 'Net sales',
stat: 'revenue/net_revenue',
},
{
chart: 'orders_count',
label: 'Orders',
stat: 'orders/orders_count',
},
{
chart: 'items_sold',
label: 'Items sold',
stat: 'products/items_sold',
},
],
},
};
2018-05-28 10:55:19 +00:00
wordPressPackages.forEach( ( lib ) => {
Object.defineProperty( global.wp, lib, {
get: () => require( `@wordpress/${ lib }` ),
} );
} );
wooCommercePackages.forEach( ( lib ) => {
Object.defineProperty( global.wc, lib, {
get: () => require( `@woocommerce/${ lib }` ),
} );
} );
Allow packages to be built in isolation. (https://github.com/woocommerce/woocommerce-admin/pull/7286) * Use yarn instead of npm. In prep for workspaces, since we're locked to npm < 7. See: https://github.com/woocommerce/woocommerce-admin/pull/7126#issue-661287749 * Initial workspace creation. * Add initial tsc build to @woocommerce/number. * Attempt to build experimental package. * Try currency package. * Define all packages as workspaces. * Use tsconfig common to packages. * Fix currency package build. * Build csv-export with tsc. * Try to build customer-effort-score with tsc. * Fix JSX pragma. * Build data package with tsc. * Build date package with tsc. * Build experimental package with tsc. * Try to build explat package with tsc. * Build navigation package with tsc. * Build notices package with tsc. * Build onboarding package with tsc. * Build components package with tsc. * Swap in package JS build into main script. * Fix experimental package build. * Try per-package css build with components. * Try to run components package tests in isolation. Broken on JSX in test files not being transformed. * Move @woocommerce/wc-admin-settings into a package. * Try to fix components package tests. Fails because we aren't setting up the jest/jest-dom globals. * Move JS test code to reusable (private) package. * Enable incremental TS builds. * Use workspaces to run JS tests. * Use new jest configs for update snapshot scripts. * Fix style builds. * Fix package version in components. * Fix client test debug and watch scripts. * Update yarn lock. * Update test-staged behavior. * Try to fix storybook. * Fix storybook. * Update more npm commands to yarn. * Add changelog. * Fix lint errors. * Update packages readme script references. * Clean up unused gitignore match. * Fix another npm command. * Fix JS builds on watch. * Fix start script. * Fix start scripts for packages. * Use tsc to build packages before tests * yarn -> npm. # Conflicts: # package-lock.json # package.json * Fix linter error. * Remove workspace definitions. * Fix missing Fragment import. * Fix package lock. * Fix missing reference. * Only build commonjs module for js-tests helper. * Remove errant dependency from components. * Remove noop scripts. * Fix package JS build before testing. * Revert noisy formatting changes. * Fix precommit and test scripts. * Fix minimum expected recommended extension count. Japan test case breaks this. * Revert babel config changes. * chore(release): publish - @woocommerce/components@7.2.0 - @woocommerce/csv-export@1.4.0 - @woocommerce/currency@3.2.0 - @woocommerce/customer-effort-score@1.1.0 - @woocommerce/data@1.4.0 - @woocommerce/date@3.1.0 - @woocommerce/dependency-extraction-webpack-plugin@1.7.0 - @woocommerce/eslint-plugin@1.3.0 - @woocommerce/experimental@1.5.0 - @woocommerce/explat@1.1.0 - @woocommerce/js-tests@1.1.0 - @woocommerce/navigation@6.1.0 - @woocommerce/notices@3.1.0 - @woocommerce/number@2.2.0 - @woocommerce/onboarding@1.1.0 - @woocommerce/tracks@1.1.0 - @woocommerce/wc-admin-settings@1.1.0 * Add script for running 'start' in a package. * Remove yarn from gitignore. * Update package changelogs, prep versions for release. * Try to fix E2E tests after main merge. * Some cleanup. * Add changelog. Co-authored-by: Paul Sealock <psealock@gmail.com>
2021-07-14 20:38:57 +00:00
const config = require( '../../../config/development.json' );
// Check if test is jsdom or node
if ( global.window ) {
window.wcAdminFeatures = config && config.features ? config.features : {};
}
setLocaleData(
{ '': { domain: 'woocommerce-admin', lang: 'en_US' } },
'woocommerce-admin'
);
// Mock core/notices store for components dispatching core notices
registerStore( 'core/notices', {
reducer: () => {
return {};
},
actions: {
createNotice: () => {},
},
selectors: {},
} );