woocommerce/plugins/woocommerce-blocks/tests/e2e/fixtures/fixture-data.js

375 lines
7.5 KiB
JavaScript

/**
* The default fixtures data is shaped according to WC REST API
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs|WooCommerce REST API}
*/
/**
* Product attributes fixture data, using the create attribute and batch create terms.
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#create-a-product-attribute|Create a product attribute}
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-attribute-terms|Batch update attribute terms}
*/
const Attributes = () => [
{
attribute: { name: 'Capacity' },
terms: [
{
name: '32gb',
},
{
name: '64gb',
},
{
name: '128gb',
},
],
},
{
attribute: { name: 'Shade' },
terms: [
{
name: 'Red',
},
{
name: 'Blue',
},
{
name: 'Black',
},
],
},
];
/**
* Coupons fixture data, using the create batch endpoint
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-coupons|Batch update coupons}
*/
const Coupons = () => [
{
code: 'coupon',
discount_type: 'fixed_cart',
amount: '5',
},
{
code: 'oldcoupon',
discount_type: 'fixed_cart',
amount: '5',
date_expires: '2020-01-01',
},
{
code: 'below100',
discount_type: 'percent',
amount: '20',
maximum_amount: '100.00',
},
{
code: 'above50',
discount_type: 'percent',
amount: '20',
minimum_amount: '50.00',
},
{
code: 'a12s',
discount_type: 'percent',
amount: '100',
individual_use: true,
email_restrictions: '*@automattic.com%2C *@a8c.com',
},
{
code: 'freeshipping',
discount_type: 'percent',
amount: '0',
free_shipping: true,
},
];
/**
* Reviews fixture data, using the create batch endpoint
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-product-reviews|Batch update product reviews}
* @param {number} id Product ID to add reviews to.
*/
const ReviewsInProduct = ( id ) => [
{
product_id: id,
review: 'Looks fine',
reviewer: 'John Doe',
reviewer_email: 'john.doe@example.com',
rating: 4,
},
{
product_id: id,
review: 'I love this album',
reviewer: 'John Doe',
reviewer_email: 'john.doe@example.com',
rating: 5,
},
{
product_id: id,
review: 'a fine review',
reviewer: "John Doe' niece",
reviewer_email: 'john.doe@example.com',
rating: 5,
},
];
/**
* Product category fixture data, using the create batch endpoint
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-product-categories|Batch update product categories}
*/
const Categories = () => [
{
name: 'Music',
},
];
/**
* Product fixture data, using the create batch endpoint
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-products|Batch update products}
*/
const Products = () => [
{
name: 'Woo Single #1',
type: 'simple',
regular_price: '21.99',
virtual: true,
downloadable: true,
downloads: [
{
name: 'Woo Single',
file:
'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg',
},
],
images: [
{
src:
'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg',
},
],
categories: [ 'Music' ],
},
{
name: '128GB USB Stick',
type: 'simple',
regular_price: '2.99',
virtual: false,
downloadable: false,
images: [
{
src:
'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg',
},
],
attributes: [
{
name: 'Capacity',
position: 0,
visible: true,
options: [ '128gb' ],
},
],
},
{
name: '32GB USB Stick',
type: 'simple',
regular_price: '1.99',
virtual: false,
downloadable: false,
images: [
{
src:
'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg',
},
],
attributes: [
{
name: 'Capacity',
position: 0,
visible: true,
options: [ '32gb' ],
},
],
},
{
name: 'Woo Single #2',
type: 'simple',
regular_price: '25.99',
virtual: true,
downloadable: true,
downloads: [
{
name: 'Woo Single 2',
file:
'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg',
},
],
images: [
{
src:
'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/cd_4_angle.jpg',
},
],
categories: [ 'Music' ],
},
];
/**
* Settings fixture data, using the update batch endpoint.
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-setting-options|Batch update setting options}
*/
const Settings = () => [
{
id: 'woocommerce_store_address',
value: '60 29th Street #343',
},
{
id: 'woocommerce_store_city',
value: 'San Francisco',
},
{
id: 'woocommerce_store_country',
value: 'US:CA',
},
{
id: 'woocommerce_store_postcode',
value: '94110',
},
{
id: 'woocommerce_allowed_countries',
value: 'specific',
},
{
id: 'woocommerce_specific_allowed_countries',
value: [ 'DZ', 'CA', 'NZ', 'ES', 'GB', 'US' ],
},
{
id: 'woocommerce_ship_to_countries',
value: 'specific',
},
{
id: 'woocommerce_specific_ship_to_countries',
value: [ 'DZ', 'CA', 'NZ', 'ES', 'GB', 'US' ],
},
{
id: 'woocommerce_enable_coupons',
value: 'yes',
},
{
id: 'woocommerce_calc_taxes',
value: 'yes',
},
{
id: 'woocommerce_currency',
value: 'USD',
},
];
/**
* Page settings fixture data, using the update batch endpoint.
*
* @param {Array} pages
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-setting-options|Batch update setting options}
*/
const PageSettings = ( pages = [] ) => {
const cartPage = pages.find( ( page ) =>
page.slug.includes( 'cart-block' )
);
const checkoutPage = pages.find( ( page ) =>
page.slug.includes( 'checkout-block' )
);
return [
{
id: 'woocommerce_cart_page_id',
value: cartPage?.id.toString() || '',
},
{
id: 'woocommerce_checkout_page_id',
value: checkoutPage?.id.toString() || '',
},
];
};
/**
* Shipping Zones fixture data, using the shipping zone endpoint, shipping
* location, and shipping method endpoint.
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#create-a-shipping-zone|Create a shipping zone}
* * @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#update-a-locations-of-a-shipping-zone|Update a locations of a shipping zone}
* * @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#include-a-shipping-method-to-a-shipping-zone|Include a shipping method to a shipping zone}
*/
const Shipping = () => [
{
name: 'UK',
locations: [
{
code: 'UK',
},
],
methods: [
{
method_id: 'flat_rate',
settings: {
title: 'Normal Shipping',
cost: '20.00',
},
},
{
method_id: 'free_shipping',
settings: {
title: 'Free Shipping',
cost: '00.00',
requires: 'coupon',
},
},
],
},
];
/**
* Taxes rates fixture data, using the create batch endpoint.
*
* @see {@link https://woocommerce.github.io/woocommerce-rest-api-docs/#batch-update-tax-rates|Batch update tax rates}
*/
const Taxes = () => [
{
country: 'US',
rate: '5.0000',
name: 'State Tax',
shipping: false,
priority: 1,
},
{
country: 'US',
rate: '10.000',
name: 'Sale Tax',
shipping: false,
priority: 2,
},
{
country: 'UK',
rate: '20.000',
name: 'VAT',
shipping: false,
},
];
module.exports = {
Attributes,
Coupons,
ReviewsInProduct,
Categories,
Products,
Settings,
PageSettings,
Shipping,
Taxes,
};