From ffcca900aec61faf550aaa69cbde6a93fe452068 Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Thu, 13 Jan 2022 11:09:38 +0100 Subject: [PATCH 01/10] test(composables): added jest config --- packages/composables/jest.config.js | 83 ++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 6 deletions(-) diff --git a/packages/composables/jest.config.js b/packages/composables/jest.config.js index d9b5f2a65..e83b8980e 100644 --- a/packages/composables/jest.config.js +++ b/packages/composables/jest.config.js @@ -1,9 +1,80 @@ -const baseConfig = require('./../../jest.base.config'); +// const baseConfig = require('./../../jest.base.config'); +// module.exports = { +// ...baseConfig, +// coverageReporters: ['html', 'lcov', 'text'], +// rootDir: __dirname, +// setupFilesAfterEnv: ['./__tests__/setup.ts'], +// watchPathIgnorePatterns: ['/node_modules/'] +// }; + +/* eslint-disable unicorn/prefer-module */ module.exports = { - ...baseConfig, - coverageReporters: ['html', 'lcov', 'text'], - rootDir: __dirname, - setupFilesAfterEnv: ['./__tests__/setup.ts'], - watchPathIgnorePatterns: ['/node_modules/'] + globals: { + __DEV__: true, + }, + + bail: true, + + // noStackTrace: true, + // bail: true, + // cache: false, + // verbose: true, + // watch: true, + coverageReporters: ['lcov'], + + coverageThreshold: { + global: { + // branches: 50, + // functions: 50, + // lines: 50, + // statements: 50 + }, + }, + + coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$', '/__mocks__/'], + collectCoverage: false, + testEnvironment: 'jsdom', + moduleNameMapper: { + '^@/(.*)$': '/$1', + '^~/(.*)$': '/$1', + '^vue$': 'vue/dist/vue.common.js', + }, + moduleFileExtensions: ['js', 'vue', 'json', 'ts'], + transform: { + '^.+\\.(ts)$': 'ts-jest', + '^.+\\.js$': 'babel-jest', + '^.+\\.vue$': 'vue-jest', + '^.+\\.(css|svg)': 'jest-transform-stub', + }, + + coverageDirectory: './coverage/', + + collectCoverageFrom: [ + '/components/**/*.vue', + '/pages/**/*.vue', + ], + + setupFiles: [ + 'jest-date-mock', + 'jest-localstorage-mock', + ], + + // setupFilesAfterEnv: ['/jest-setup.js'], + + transformIgnorePatterns: [ + 'node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider)', + + ], + + testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'], + + watchPlugins: [ + 'jest-watch-typeahead/filename', + 'jest-watch-typeahead/testname', + ['jest-watch-toggle-config', { setting: 'verbose' }], + ['jest-watch-toggle-config', { setting: 'collectCoverage' }], + ['jest-watch-toggle-config', { setting: 'notify' }], + ['jest-watch-toggle-config', { setting: 'bail' }], + ], }; From 2648014ed956dab81a4ae9f9e53fa71dce0943ac Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Thu, 13 Jan 2022 11:11:16 +0100 Subject: [PATCH 02/10] tests(composables): rewritten test + fix in productGetter --- .../__tests__/getters/productHelpers.spec.ts | 204 ++---------------- .../composables/src/getters/productGetters.ts | 4 +- 2 files changed, 14 insertions(+), 194 deletions(-) diff --git a/packages/composables/__tests__/getters/productHelpers.spec.ts b/packages/composables/__tests__/getters/productHelpers.spec.ts index c92051591..b4233c7cd 100644 --- a/packages/composables/__tests__/getters/productHelpers.spec.ts +++ b/packages/composables/__tests__/getters/productHelpers.spec.ts @@ -140,7 +140,7 @@ const product = { }] } as any; -describe('[commercetools-getters] product getters', () => { +describe('[magento-getters] product getters', () => { it('returns default values', () => { expect(getName(null)).toBe(''); expect(getSlug(null)).toBe(''); @@ -149,221 +149,41 @@ describe('[commercetools-getters] product getters', () => { }); it('returns name', () => { - expect(getName(product)).toBe('variant 1'); + expect(getName(product)).toBe('Joust Duffle Bag'); }); it('returns slug', () => { - expect(getSlug(product)).toBe('variant-1'); + expect(getSlug(product)).toBe('/joust-duffle-bag.html'); }); it('returns price', () => { - expect(getPrice(product)).toEqual({ regular: 12, special: 12 }); + expect(getPrice(product)).toEqual({ regular: 34, special: null }); }); it('returns gallery', () => { expect(getGallery(product)).toEqual([ { - small: 'imageV11/url.jpg', - big: 'imageV11/url.jpg', - normal: 'imageV11/url.jpg' - }, - { - small: 'imageV12/url.jpg', - big: 'imageV12/url.jpg', - normal: 'imageV12/url.jpg' + small: 'https://m2.caravelx.com/media/catalog/product/cache/746ba992681b73af7e339699b3e0caf7/m/b/mb01-blue-0.jpg', + normal: 'https://m2.caravelx.com/media/catalog/product/cache/746ba992681b73af7e339699b3e0caf7/m/b/mb01-blue-0.jpg', + big: 'https://m2.caravelx.com/media/catalog/product/cache/746ba992681b73af7e339699b3e0caf7/m/b/mb01-blue-0.jpg' } ]); }); it('returns cover image', () => { - expect(getCoverImage({ images: [] } as any)).toEqual(''); - expect(getCoverImage(product)).toEqual('imageV11/url.jpg'); - }); - - it('returns master variant', () => { - const variants = [ - { - _name: 'variant 1', - _master: false - }, - { - _name: 'variant 2', - _master: true - } - ]; - expect(getFiltered(variants as any, { master: true })).toEqual([{ - _name: 'variant 2', - _master: true - }]); - }); - - it('returns master variants', () => { - const variants = [ - { - _name: 'variant 1_1', - _master: false - }, - { - _name: 'variant 1_2', - _master: true - }, - { - _name: 'variant 2_1', - _master: true - }, - { - _name: 'variant 2_2', - _master: false - } - ]; - expect(getFiltered(variants as any, { master: true })).toEqual([ - { - _name: 'variant 1_2', - _master: true - }, - { - _name: 'variant 2_1', - _master: true - } - ]); - }); - - it('returns all variants', () => { - const variants = [ - { - _name: 'variant 1', - _master: false - }, - { - _name: 'variant 2', - _master: true - } - ]; - expect(getFiltered(variants as any)).toEqual(variants); - }); - - it('returns product by given attributes', () => { - const variant1 = { - ...product, - attributesRaw: [ - { - name: 'size', - value: '36', - _translated: '26', - attributeDefinition: { type: { name: 'text' } } - }, - { - name: 'color', - value: 'white', - _translated: 'white', - attributeDefinition: { type: { name: 'text' } } - } - ] - }; - const variant2 = { - ...product, - attributesRaw: [ - { - name: 'size', - value: '38', - _translated: '38', - attributeDefinition: { type: { name: 'text' } } - }, - { - name: 'color', - value: 'black', - _translated: 'black', - attributeDefinition: { type: { name: 'text' } } - } - ] - }; - - const variants = [variant1, variant2]; - - const attributes = { - color: 'black', - size: '38' - }; - expect(getFiltered(variants, { attributes })).toEqual([variant2]); - }); - - // Attributes - - it('returns product attributes', () => { - expect(getAttributes([product])).toEqual({ - articleNumberManufacturer: [{ - label: 'H805 C195 85072', - value: 'H805 C195 85072' - }] - }); - }); - - it('returns attributes of single product', () => { - expect(getAttributes(product)).toEqual({ articleNumberManufacturer: 'H805 C195 85072' }); - }); - - it('returns product unique attributes', () => { - const prod = { - ...product, - attributesRaw: [ - { - name: 'articleNumberManufacturer', - value: 'H805 C195 85072', - _translated: 'H805 C195 85072', - attributeDefinition: { type: { name: 'text' } } - }, - { - name: 'articleNumberManufacturer', - value: 'H805 C195 85072', - _translated: 'H805 C195 85072', - attributeDefinition: { type: { name: 'text' } } - } - ] - } as any; - - expect(getAttributes([prod])).toEqual({ - articleNumberManufacturer: [{ - label: 'H805 C195 85072', - value: 'H805 C195 85072' - }] - }); - }); - - it('returns filtered product attributes', () => { - const product = { - attributesRaw: [ - { - name: 'articleNumberManufacturer', - value: 'H805 C195 85072', - _translated: 'H805 C195 85072', - attributeDefinition: { type: { name: 'text' } } - }, - { - name: 'color', - value: 'H805 C195 85072', - _translated: 'H805 C195 85072', - attributeDefinition: { type: { name: 'text' } } - } - ] - } as any; - - expect(getAttributes([product], ['color'])).toEqual({ - color: [{ - value: 'H805 C195 85072', - label: 'H805 C195 85072' - }] - }); + expect(getCoverImage({ images: [] } as any)).toEqual(null); + expect(getCoverImage(product)).toEqual('https://m2.caravelx.com/media/catalog/product/cache/746ba992681b73af7e339699b3e0caf7/m/b/mb01-blue-0.jpg'); }); it('returns product categories', () => { expect(getCategoryIds(product)).toEqual([ - 'catA', - 'catB' + 'Mw==', + 'NA==' ]); }); it('returns product ID', () => { - expect(getId(product)).toEqual(1234); + expect(getId(product)).toEqual('MQ=='); }); it('returns empty array if there is no product', () => { diff --git a/packages/composables/src/getters/productGetters.ts b/packages/composables/src/getters/productGetters.ts index 23920cb84..abd2d7af7 100644 --- a/packages/composables/src/getters/productGetters.ts +++ b/packages/composables/src/getters/productGetters.ts @@ -26,8 +26,8 @@ export const getName = (product: Product): string => { }; export const getSlug = (product: Product, category?: Category): string => { - const rewrites = product.url_rewrites; - let url = `/p/${product.sku}`; + const rewrites = product?.url_rewrites; + let url = product?.sku ? `/p/${product.sku}` : ''; if (!rewrites || rewrites.length === 0) { return url; } From 560a82e50f315688e020c6b71b585983d879dfd2 Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Thu, 13 Jan 2022 11:34:10 +0100 Subject: [PATCH 03/10] tests(composables): updated configuration in jest.config.js --- packages/composables/jest.config.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/composables/jest.config.js b/packages/composables/jest.config.js index e83b8980e..b1fb2f310 100644 --- a/packages/composables/jest.config.js +++ b/packages/composables/jest.config.js @@ -14,8 +14,6 @@ module.exports = { __DEV__: true, }, - bail: true, - // noStackTrace: true, // bail: true, // cache: false, From 9d27c883c755833b80ae0c95912396ae8c21b656 Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Thu, 13 Jan 2022 16:12:36 +0100 Subject: [PATCH 04/10] tests(api-client): added tests for api-client + move general config to jest.base.config.js --- jest.base.config.js | 21 ++++---- packages/api-client/jest.config.js | 23 ++++++--- packages/composables/jest.config.js | 76 ++++------------------------- packages/theme/jest.config.js | 46 ++++------------- 4 files changed, 44 insertions(+), 122 deletions(-) diff --git a/jest.base.config.js b/jest.base.config.js index eb526b980..148e63034 100644 --- a/jest.base.config.js +++ b/jest.base.config.js @@ -23,23 +23,20 @@ module.exports = { coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$', '/__mocks__/'], - testEnvironment: 'jest-environment-jsdom-sixteen', + coverageDirectory: './coverage/', + + moduleNameMapper: { + '^@/(.*)$': '/$1', + '^~/(.*)$': '/$1', + }, + testEnvironment: 'jest-environment-jsdom-sixteen', + transform: { '^.+\\.(ts)$': 'ts-jest', + '^.+\\.js$': 'babel-jest', }, - coverageDirectory: './coverage/', - - collectCoverageFrom: [ - 'src/**/*.ts', - ], - - setupFiles: [ - 'jest-date-mock', - 'jest-localstorage-mock', - ], - transformIgnorePatterns: [ 'node_modules', '/node_modules', diff --git a/packages/api-client/jest.config.js b/packages/api-client/jest.config.js index dd14a17fd..c6367554a 100644 --- a/packages/api-client/jest.config.js +++ b/packages/api-client/jest.config.js @@ -1,13 +1,24 @@ -const baseConfig = require('../../jest.base.config'); +const baseConfig = require('./../../jest.base.config'); +/* eslint-disable unicorn/prefer-module */ module.exports = { ...baseConfig, - transform: { - ...baseConfig.transform, - '\\.(gql|graphql)$': 'jest-transform-graphql', - }, - setupFilesAfterEnv: ['./__tests__/setup.ts'], + + collectCoverageFrom: [ + '/src/**/*.ts' + ], + moduleNameMapper: { + ...baseConfig.moduleNameMapper, 'api-client(.*)$': '$1', }, + + moduleFileExtensions: ['js', 'json', 'ts'], + transform: { + ...baseConfig.transform.transform, + '\\.(gql|graphql)$': 'jest-transform-graphql' + }, + + testEnvironment: 'jsdom', + }; diff --git a/packages/composables/jest.config.js b/packages/composables/jest.config.js index b1fb2f310..0fc82fb59 100644 --- a/packages/composables/jest.config.js +++ b/packages/composables/jest.config.js @@ -1,78 +1,20 @@ -// const baseConfig = require('./../../jest.base.config'); - -// module.exports = { -// ...baseConfig, -// coverageReporters: ['html', 'lcov', 'text'], -// rootDir: __dirname, -// setupFilesAfterEnv: ['./__tests__/setup.ts'], -// watchPathIgnorePatterns: ['/node_modules/'] -// }; +const baseConfig = require('./../../jest.base.config'); /* eslint-disable unicorn/prefer-module */ module.exports = { - globals: { - __DEV__: true, - }, - - // noStackTrace: true, - // bail: true, - // cache: false, - // verbose: true, - // watch: true, - coverageReporters: ['lcov'], - - coverageThreshold: { - global: { - // branches: 50, - // functions: 50, - // lines: 50, - // statements: 50 - }, - }, + ...baseConfig, + + collectCoverageFrom: [ + '/composables/**/*.ts' + ], - coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$', '/__mocks__/'], - collectCoverage: false, - testEnvironment: 'jsdom', - moduleNameMapper: { - '^@/(.*)$': '/$1', - '^~/(.*)$': '/$1', - '^vue$': 'vue/dist/vue.common.js', - }, - moduleFileExtensions: ['js', 'vue', 'json', 'ts'], + moduleFileExtensions: ['js', 'json', 'ts'], + transform: { '^.+\\.(ts)$': 'ts-jest', '^.+\\.js$': 'babel-jest', - '^.+\\.vue$': 'vue-jest', - '^.+\\.(css|svg)': 'jest-transform-stub', }, - coverageDirectory: './coverage/', - - collectCoverageFrom: [ - '/components/**/*.vue', - '/pages/**/*.vue', - ], - - setupFiles: [ - 'jest-date-mock', - 'jest-localstorage-mock', - ], - - // setupFilesAfterEnv: ['/jest-setup.js'], - - transformIgnorePatterns: [ - 'node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider)', - - ], - - testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'], + testEnvironment: 'jsdom', - watchPlugins: [ - 'jest-watch-typeahead/filename', - 'jest-watch-typeahead/testname', - ['jest-watch-toggle-config', { setting: 'verbose' }], - ['jest-watch-toggle-config', { setting: 'collectCoverage' }], - ['jest-watch-toggle-config', { setting: 'notify' }], - ['jest-watch-toggle-config', { setting: 'bail' }], - ], }; diff --git a/packages/theme/jest.config.js b/packages/theme/jest.config.js index 4c5605650..f4d59f91a 100644 --- a/packages/theme/jest.config.js +++ b/packages/theme/jest.config.js @@ -1,42 +1,26 @@ +const baseConfig = require('./../../jest.base.config'); + /* eslint-disable unicorn/prefer-module */ module.exports = { - globals: { - __DEV__: true, - }, - // noStackTrace: true, - // bail: true, - // cache: false, - // verbose: true, - // watch: true, - coverageReporters: ['lcov'], - - coverageThreshold: { - global: { - // branches: 50, - // functions: 50, - // lines: 50, - // statements: 50 - }, - }, + ...baseConfig, - coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$', '/__mocks__/'], collectCoverage: false, + testEnvironment: 'jsdom', + moduleNameMapper: { - '^@/(.*)$': '/$1', - '^~/(.*)$': '/$1', + ...baseConfig.moduleNameMapper, '^vue$': 'vue/dist/vue.common.js', }, + moduleFileExtensions: ['js', 'vue', 'json', 'ts'], + transform: { - '^.+\\.(ts)$': 'ts-jest', - '^.+\\.js$': 'babel-jest', + ...baseConfig.transform, '^.+\\.vue$': 'vue-jest', '^.+\\.(css|svg)': 'jest-transform-stub', }, - coverageDirectory: './coverage/', - collectCoverageFrom: [ '/components/**/*.vue', '/pages/**/*.vue', @@ -51,19 +35,7 @@ module.exports = { transformIgnorePatterns: [ 'node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider)', - ], - testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'], - modulePathIgnorePatterns: ['_theme', 'tests/e2e'], - - watchPlugins: [ - 'jest-watch-typeahead/filename', - 'jest-watch-typeahead/testname', - ['jest-watch-toggle-config', { setting: 'verbose' }], - ['jest-watch-toggle-config', { setting: 'collectCoverage' }], - ['jest-watch-toggle-config', { setting: 'notify' }], - ['jest-watch-toggle-config', { setting: 'bail' }], - ], }; From 18f20f2405114278d69c8b9ddff5698558241403 Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Fri, 14 Jan 2022 16:17:28 +0100 Subject: [PATCH 05/10] tests(api-client): added jest configuration + simple test --- .../api/storeConfig/storeConfig.spec.ts | 70 +++++++++++++++++++ .../__tests__/mockData/api/storeConfig.ts | 58 +++++++++++++++ .../api-client/__tests__/setup/handlers.ts | 12 ++++ packages/api-client/__tests__/setup/index.ts | 0 .../api-client/__tests__/setup/request.ts | 11 +++ packages/api-client/__tests__/setup/server.ts | 4 ++ packages/api-client/jest.config.js | 10 ++- packages/api-client/jest.setup.ts | 11 +++ packages/api-client/package.json | 1 + 9 files changed, 171 insertions(+), 6 deletions(-) create mode 100644 packages/api-client/__tests__/api/storeConfig/storeConfig.spec.ts create mode 100644 packages/api-client/__tests__/mockData/api/storeConfig.ts create mode 100644 packages/api-client/__tests__/setup/handlers.ts create mode 100644 packages/api-client/__tests__/setup/index.ts create mode 100644 packages/api-client/__tests__/setup/request.ts create mode 100644 packages/api-client/__tests__/setup/server.ts create mode 100644 packages/api-client/jest.setup.ts diff --git a/packages/api-client/__tests__/api/storeConfig/storeConfig.spec.ts b/packages/api-client/__tests__/api/storeConfig/storeConfig.spec.ts new file mode 100644 index 000000000..1207868f7 --- /dev/null +++ b/packages/api-client/__tests__/api/storeConfig/storeConfig.spec.ts @@ -0,0 +1,70 @@ +import request from '../../setup/request'; +import {STORE_CONFIG_MOCK_RESP} from './../../mockData/api/storeConfig' + +describe('[Magento-API-Client] storeConfig', () => { + it('Fetching the storeConfig', async () => { + const res = await request({ + body: JSON.stringify({ + query: ` + query { + storeConfig { + allow_guests_to_write_product_reviews + allow_items + allow_order + base_currency_code + catalog_default_sort_by + category_fixed_product_tax_display_setting + cms_home_page + cms_no_cookies + cms_no_route + configurable_thumbnail_source + copyright + default_description + default_display_currency_code + default_keywords + default_title + grid_per_page + grid_per_page_values + head_shortcut_icon + header_logo_src + is_default_store + is_default_store_group + list_mode + list_per_page + list_per_page_values + locale + logo_alt + logo_height + logo_width + magento_wishlist_general_is_enabled + minimum_password_length + no_route + product_fixed_product_tax_display_setting + product_reviews_enabled + required_character_classes_number + root_category_uid + sales_fixed_product_tax_display_setting + store_code + store_group_code + store_group_name + store_name + store_sort_order + timezone + title_prefix + title_separator + title_suffix + use_store_in_url + website_code + website_name + weight_unit + welcome + } + } + ` + }) + }); + const { data } = await res.json(); + + expect(data).toEqual(STORE_CONFIG_MOCK_RESP); + }); +}); diff --git a/packages/api-client/__tests__/mockData/api/storeConfig.ts b/packages/api-client/__tests__/mockData/api/storeConfig.ts new file mode 100644 index 000000000..4692b7027 --- /dev/null +++ b/packages/api-client/__tests__/mockData/api/storeConfig.ts @@ -0,0 +1,58 @@ +const STORE_CONFIG_MOCK_RESP = { + storeConfig: { + allow_guests_to_write_product_reviews: '1', + allow_items: null, + allow_order: null, + base_currency_code: 'USD', + catalog_default_sort_by: 'position', + category_fixed_product_tax_display_setting: 'FPT_DISABLED', + cms_home_page: 'home', + cms_no_cookies: 'enable-cookies', + cms_no_route: 'no-route', + configurable_thumbnail_source: 'parent', + copyright: 'Copyright © 2013-present Magento, Inc. All rights reserved.', + default_description: null, + default_display_currency_code: 'USD', + default_keywords: null, + default_title: 'Magento Commerce', + grid_per_page: 12, + grid_per_page_values: '12,24,36', + head_shortcut_icon: null, + header_logo_src: null, + is_default_store: true, + is_default_store_group: true, + list_mode: 'grid-list', + list_per_page: 10, + list_per_page_values: '5,10,15,20,25', + locale: 'en_US', + logo_alt: null, + logo_height: null, + logo_width: null, + magento_wishlist_general_is_enabled: '1', + minimum_password_length: '8', + no_route: 'cms/noroute/index', + product_fixed_product_tax_display_setting: 'FPT_DISABLED', + product_reviews_enabled: '1', + required_character_classes_number: '3', + root_category_uid: 'Mg==', + sales_fixed_product_tax_display_setting: 'FPT_DISABLED', + store_code: 'default', + store_group_code: 'main_website_store', + store_group_name: 'Main Website Store', + store_name: 'Default Store View', + store_sort_order: 0, + timezone: 'America/Chicago', + title_prefix: null, + title_separator: '-', + title_suffix: null, + use_store_in_url: false, + website_code: 'base', + website_name: 'Main Website', + weight_unit: 'lbs', + welcome: 'Default welcome msg!', + }, +}; + +export { + STORE_CONFIG_MOCK_RESP, +}; diff --git a/packages/api-client/__tests__/setup/handlers.ts b/packages/api-client/__tests__/setup/handlers.ts new file mode 100644 index 000000000..544bcb7bb --- /dev/null +++ b/packages/api-client/__tests__/setup/handlers.ts @@ -0,0 +1,12 @@ +import { graphql } from 'msw'; +import {STORE_CONFIG_MOCK_RESP} from './../mockData/api/storeConfig' + +const magento = graphql.link('https://magento2-instance.vuestorefront.io/graphql'); + +export const handlers = [ + magento.query('storeConfig', (req, res, ctx) => res( + ctx.data({ + data: STORE_CONFIG_MOCK_RESP, + }), + )), +]; diff --git a/packages/api-client/__tests__/setup/index.ts b/packages/api-client/__tests__/setup/index.ts new file mode 100644 index 000000000..e69de29bb diff --git a/packages/api-client/__tests__/setup/request.ts b/packages/api-client/__tests__/setup/request.ts new file mode 100644 index 000000000..cc48316d3 --- /dev/null +++ b/packages/api-client/__tests__/setup/request.ts @@ -0,0 +1,11 @@ +import fetch from 'cross-fetch'; + +const request = ({ body }) => fetch('https://magento2-instance.vuestorefront.io/graphql', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body, +}); + +export default request; diff --git a/packages/api-client/__tests__/setup/server.ts b/packages/api-client/__tests__/setup/server.ts new file mode 100644 index 000000000..55673ce2b --- /dev/null +++ b/packages/api-client/__tests__/setup/server.ts @@ -0,0 +1,4 @@ +import { setupServer } from 'msw/node'; +import { handlers } from './handlers'; + +export const server = setupServer(...handlers) diff --git a/packages/api-client/jest.config.js b/packages/api-client/jest.config.js index c6367554a..2ce2a5436 100644 --- a/packages/api-client/jest.config.js +++ b/packages/api-client/jest.config.js @@ -3,9 +3,9 @@ const baseConfig = require('./../../jest.base.config'); /* eslint-disable unicorn/prefer-module */ module.exports = { ...baseConfig, - + collectCoverageFrom: [ - '/src/**/*.ts' + '/src/**/*.ts', ], moduleNameMapper: { @@ -14,11 +14,9 @@ module.exports = { }, moduleFileExtensions: ['js', 'json', 'ts'], - transform: { - ...baseConfig.transform.transform, - '\\.(gql|graphql)$': 'jest-transform-graphql' - }, testEnvironment: 'jsdom', + // setupFilesAfterEnv: ['/jest.setup.ts'], + }; diff --git a/packages/api-client/jest.setup.ts b/packages/api-client/jest.setup.ts new file mode 100644 index 000000000..f0430c7c4 --- /dev/null +++ b/packages/api-client/jest.setup.ts @@ -0,0 +1,11 @@ +import { server } from './__tests__/setup/server'; + +// Establish API mocking before all tests. +beforeAll(() => server.listen()); + +// Reset any request handlers that we may add during the tests, +// so they don't affect other tests. +afterEach(() => server.resetHandlers()); + +// Clean up after the tests are finished. +afterAll(() => server.close()); diff --git a/packages/api-client/package.json b/packages/api-client/package.json index d73e437c9..7293555bf 100644 --- a/packages/api-client/package.json +++ b/packages/api-client/package.json @@ -38,6 +38,7 @@ "dotenv": "^10.0.0", "graphql-tools": "^8.2.0", "jest-transform-graphql": "^2.1.0", + "msw": "^0.36.4", "typescript": "^4.5.4", "webpack": "4.46.0" }, From 8d656628b04f0f68e97c634a0a0d3c1b6b0cb800 Mon Sep 17 00:00:00 2001 From: Marcin Kwiatkowski Date: Mon, 17 Jan 2022 08:00:17 +0100 Subject: [PATCH 06/10] chore: removed jest-environment-jsdom-sixteen --- jest.base.config.js | 4 +- package.json | 1 - yarn.lock | 312 ++++++++++++++++++++++++++++---------------- 3 files changed, 199 insertions(+), 118 deletions(-) diff --git a/jest.base.config.js b/jest.base.config.js index 148e63034..50aa8a509 100644 --- a/jest.base.config.js +++ b/jest.base.config.js @@ -30,8 +30,8 @@ module.exports = { '^~/(.*)$': '/$1', }, - testEnvironment: 'jest-environment-jsdom-sixteen', - + testEnvironment: 'jsdom', + transform: { '^.+\\.(ts)$': 'ts-jest', '^.+\\.js$': 'babel-jest', diff --git a/package.json b/package.json index 4f70f07a1..bb172b133 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "husky": "^7.0.4", "jest": "^27.4.5", "jest-date-mock": "^1.0.8", - "jest-environment-jsdom-sixteen": "^2.0.0", "jest-localstorage-mock": "^2.4.18", "jest-silent-reporter": "^0.5.0", "jest-transform-stub": "^2.0.0", diff --git a/yarn.lock b/yarn.lock index 414655271..1ac445362 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2557,19 +2557,6 @@ __metadata: languageName: node linkType: hard -"@jest/fake-timers@npm:^25.1.0": - version: 25.5.0 - resolution: "@jest/fake-timers@npm:25.5.0" - dependencies: - "@jest/types": ^25.5.0 - jest-message-util: ^25.5.0 - jest-mock: ^25.5.0 - jest-util: ^25.5.0 - lolex: ^5.0.0 - checksum: e34dc713a2e26e936aa15d0d6f479ad9ffbea13d50436f873631fd8077fd746d23e2ce1f0bd2ac32fe99f0dac3eae35960a59fdd98830c0134819e5c9b7e822e - languageName: node - linkType: hard - "@jest/fake-timers@npm:^27.4.6": version: 27.4.6 resolution: "@jest/fake-timers@npm:27.4.6" @@ -2691,18 +2678,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^25.5.0": - version: 25.5.0 - resolution: "@jest/types@npm:25.5.0" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^1.1.1 - "@types/yargs": ^15.0.0 - chalk: ^3.0.0 - checksum: 785b67521a2c54f290ad4b53f49fec6b14fa25828bf26a838f7bbe08dd42122f27f71a620ea9a33286346786e9b120dd370abf589e6ef8c5fde9dc56906880b1 - languageName: node - linkType: hard - "@jest/types@npm:^26.6.2": version: 26.6.2 resolution: "@jest/types@npm:26.6.2" @@ -3586,6 +3561,30 @@ __metadata: languageName: node linkType: hard +"@mswjs/cookies@npm:^0.1.6": + version: 0.1.6 + resolution: "@mswjs/cookies@npm:0.1.6" + dependencies: + "@types/set-cookie-parser": ^2.4.0 + set-cookie-parser: ^2.4.6 + checksum: a08edee5c3bae24ed193ea48e30537fa34a8d1e11e49abf440dd48444682e3505abcdc9acb03ebab012779034629da1ed9c65e5c0b751286a80bf8281de3faa6 + languageName: node + linkType: hard + +"@mswjs/interceptors@npm:^0.12.7": + version: 0.12.7 + resolution: "@mswjs/interceptors@npm:0.12.7" + dependencies: + "@open-draft/until": ^1.0.3 + "@xmldom/xmldom": ^0.7.2 + debug: ^4.3.2 + headers-utils: ^3.0.2 + outvariant: ^1.2.0 + strict-event-emitter: ^0.2.0 + checksum: 426e9a27f13f0bd1f5b8dbf5f3605c65709f0aa73cee5a4a8278bc43859968a11d72aef42266a9c07030f1949f539ac1865a1da7edecc31b1ba40406211918f5 + languageName: node + linkType: hard + "@n1ru4l/graphql-live-query@npm:^0.9.0": version: 0.9.0 resolution: "@n1ru4l/graphql-live-query@npm:0.9.0" @@ -4367,6 +4366,13 @@ __metadata: languageName: node linkType: hard +"@open-draft/until@npm:^1.0.3": + version: 1.0.3 + resolution: "@open-draft/until@npm:1.0.3" + checksum: 323e92ebef0150ed0f8caedc7d219b68cdc50784fa4eba0377eef93533d3f46514eb2400ced83dda8c51bddc3d2c7b8e9cf95e5ec85ab7f62dfc015d174f62f2 + languageName: node + linkType: hard + "@opencensus/core@npm:0.0.9": version: 0.0.9 resolution: "@opencensus/core@npm:0.0.9" @@ -4920,6 +4926,13 @@ __metadata: languageName: node linkType: hard +"@types/cookie@npm:^0.4.1": + version: 0.4.1 + resolution: "@types/cookie@npm:0.4.1" + checksum: 3275534ed69a76c68eb1a77d547d75f99fedc80befb75a3d1d03662fb08d697e6f8b1274e12af1a74c6896071b11510631ba891f64d30c78528d0ec45a9c1a18 + languageName: node + linkType: hard + "@types/dompurify@npm:^2.3.1": version: 2.3.2 resolution: "@types/dompurify@npm:2.3.2" @@ -5057,6 +5070,16 @@ __metadata: languageName: node linkType: hard +"@types/inquirer@npm:^8.1.3": + version: 8.1.3 + resolution: "@types/inquirer@npm:8.1.3" + dependencies: + "@types/through": "*" + rxjs: ^7.2.0 + checksum: b2f9914d1380e60a9a6d890abdd24078db63069a4bd974e77a00c5660bf5cab33a60fba6f02b56f1b2e6418e287e4697361b12cb85704b13e76f1a23c934d203 + languageName: node + linkType: hard + "@types/isomorphic-fetch@npm:^0.0.35": version: 0.0.35 resolution: "@types/isomorphic-fetch@npm:0.0.35" @@ -5080,16 +5103,6 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-reports@npm:^1.1.1": - version: 1.1.2 - resolution: "@types/istanbul-reports@npm:1.1.2" - dependencies: - "@types/istanbul-lib-coverage": "*" - "@types/istanbul-lib-report": "*" - checksum: 00866e815d1e68d0a590d691506937b79d8d65ad8eab5ed34dbfee66136c7c0f4ea65327d32046d5fe469f22abea2b294987591dc66365ebc3991f7e413b2d78 - languageName: node - linkType: hard - "@types/istanbul-reports@npm:^3.0.0": version: 3.0.1 resolution: "@types/istanbul-reports@npm:3.0.1" @@ -5116,6 +5129,13 @@ __metadata: languageName: node linkType: hard +"@types/js-levenshtein@npm:^1.1.0": + version: 1.1.1 + resolution: "@types/js-levenshtein@npm:1.1.1" + checksum: 1d1ff1ee2ad551909e47f3ce19fcf85b64dc5146d3b531c8d26fc775492d36e380b32cf5ef68ff301e812c3b00282f37aac579ebb44498b94baff0ace7509769 + languageName: node + linkType: hard + "@types/js-yaml@npm:^4.0.0": version: 4.0.5 resolution: "@types/js-yaml@npm:4.0.5" @@ -5389,6 +5409,15 @@ __metadata: languageName: node linkType: hard +"@types/set-cookie-parser@npm:^2.4.0": + version: 2.4.2 + resolution: "@types/set-cookie-parser@npm:2.4.2" + dependencies: + "@types/node": "*" + checksum: c31bf04eb9620829dc3c91bced74ac934ad039d20d20893fb5acac0f08769cbd4eef3bf7502a0289c7be59c3e9cfa456147b4e88bff47dd1b9efb4995ba5d5a3 + languageName: node + linkType: hard + "@types/sinonjs__fake-timers@npm:^6.0.2": version: 6.0.4 resolution: "@types/sinonjs__fake-timers@npm:6.0.4" @@ -5410,13 +5439,6 @@ __metadata: languageName: node linkType: hard -"@types/stack-utils@npm:^1.0.1": - version: 1.0.1 - resolution: "@types/stack-utils@npm:1.0.1" - checksum: 9dc052b575acfeca3f165fb19d87b7b2989d54ed7d64a7eeb0b7587bc5795ef1f2c2b1511a44dcf0831ef35b8ce3486f97fcbfdd50c01f68aa297de31502c9d9 - languageName: node - linkType: hard - "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -5471,6 +5493,15 @@ __metadata: languageName: node linkType: hard +"@types/through@npm:*": + version: 0.0.30 + resolution: "@types/through@npm:0.0.30" + dependencies: + "@types/node": "*" + checksum: 9578470db0b527c26e246a1220ae9bffc6bf47f20f89c54aac467c083ab1f7e16c00d9a7b4bb6cb4e2dfae465027270827e5908a6236063f6214625e50585d78 + languageName: node + linkType: hard + "@types/tough-cookie@npm:*": version: 4.0.1 resolution: "@types/tough-cookie@npm:4.0.1" @@ -5834,6 +5865,7 @@ __metadata: graphql-tools: ^8.2.0 isomorphic-fetch: ^3.0.0 jest-transform-graphql: ^2.1.0 + msw: ^0.36.4 typescript: ^4.5.4 webpack: 4.46.0 peerDependencies: @@ -6555,6 +6587,13 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:^0.7.2": + version: 0.7.5 + resolution: "@xmldom/xmldom@npm:0.7.5" + checksum: 8d7ec35c1ef6183b4f621df08e01d7e61f244fb964a4719025e65fe6ac06fac418919be64fb40fe5908e69158ef728f2d936daa082db326fe04603012b5f2a84 + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -8587,6 +8626,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:4.1.1": + version: 4.1.1 + resolution: "chalk@npm:4.1.1" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 036e973e665ba1a32c975e291d5f3d549bceeb7b1b983320d4598fb75d70fe20c5db5d62971ec0fe76cdbce83985a00ee42372416abfc3a5584465005a7855ed + languageName: node + linkType: hard + "chalk@npm:^1.0.0, chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" @@ -12025,7 +12074,7 @@ __metadata: languageName: node linkType: hard -"events@npm:^3.0.0, events@npm:^3.2.0": +"events@npm:^3.0.0, events@npm:^3.2.0, events@npm:^3.3.0": version: 3.3.0 resolution: "events@npm:3.3.0" checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 @@ -13624,6 +13673,13 @@ __metadata: languageName: node linkType: hard +"graphql@npm:^15.5.1": + version: 15.8.0 + resolution: "graphql@npm:15.8.0" + checksum: 423325271db8858428641b9aca01699283d1fe5b40ef6d4ac622569ecca927019fce8196208b91dd1d8eb8114f00263fe661d241d0eb40c10e5bfd650f86ec5e + languageName: node + linkType: hard + "growl@npm:1.10.5": version: 1.10.5 resolution: "growl@npm:1.10.5" @@ -13891,6 +13947,13 @@ __metadata: languageName: node linkType: hard +"headers-utils@npm:^3.0.2": + version: 3.0.2 + resolution: "headers-utils@npm:3.0.2" + checksum: 210fe65756d6de8a96afe68617463fb6faf675a24d864e849b17bddf051c4a24d621a510a1bb80fd9d4763b932eb44b5d8fd6fc4f14fa62fb211603456a57b4f + languageName: node + linkType: hard + "hex-color-regex@npm:^1.1.0": version: 1.1.0 resolution: "hex-color-regex@npm:1.1.0" @@ -14532,7 +14595,7 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:^8.0.0": +"inquirer@npm:^8.0.0, inquirer@npm:^8.2.0": version: 8.2.0 resolution: "inquirer@npm:8.2.0" dependencies: @@ -15003,6 +15066,13 @@ __metadata: languageName: node linkType: hard +"is-node-process@npm:^1.0.1": + version: 1.0.1 + resolution: "is-node-process@npm:1.0.1" + checksum: 3ddb8a892a00f6eb9c2aea7e7e1426b8683512d9419933d95114f4f64b5455e26601c23a31c0682463890032136dd98a326988a770ab6b4eed54a43ade8bed50 + languageName: node + linkType: hard + "is-npm@npm:^5.0.0": version: 5.0.0 resolution: "is-npm@npm:5.0.0" @@ -15571,18 +15641,6 @@ __metadata: languageName: node linkType: hard -"jest-environment-jsdom-sixteen@npm:^2.0.0": - version: 2.0.0 - resolution: "jest-environment-jsdom-sixteen@npm:2.0.0" - dependencies: - "@jest/fake-timers": ^25.1.0 - jest-mock: ^25.1.0 - jest-util: ^25.1.0 - jsdom: ^16.2.1 - checksum: 93d2750ad5fe476ecf5405f0d35d02ca60c1dc8a0a357d3b0c68e79ed4f130c9a6b0f168279b27815562f46d09850e6219c8ea4efe0ab13bc6da7755e1f11504 - languageName: node - linkType: hard - "jest-environment-jsdom@npm:^27.4.4, jest-environment-jsdom@npm:^27.4.6": version: 27.4.6 resolution: "jest-environment-jsdom@npm:27.4.6" @@ -15697,22 +15755,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:^25.5.0": - version: 25.5.0 - resolution: "jest-message-util@npm:25.5.0" - dependencies: - "@babel/code-frame": ^7.0.0 - "@jest/types": ^25.5.0 - "@types/stack-utils": ^1.0.1 - chalk: ^3.0.0 - graceful-fs: ^4.2.4 - micromatch: ^4.0.2 - slash: ^3.0.0 - stack-utils: ^1.0.1 - checksum: 16ab8999802649069504a6eb1b2ee645d048cfe8dd2a8ac2a552d5f7f67bf657f02e1974c8e18313dbe9b4e9d83f80510757c1e6b4e5392db7d5da68d4eeebba - languageName: node - linkType: hard - "jest-message-util@npm:^27.4.6": version: 27.4.6 resolution: "jest-message-util@npm:27.4.6" @@ -15730,15 +15772,6 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^25.1.0, jest-mock@npm:^25.5.0": - version: 25.5.0 - resolution: "jest-mock@npm:25.5.0" - dependencies: - "@jest/types": ^25.5.0 - checksum: b0e3cc2ccb05b45fc1ec52476d07740cab980d7ed41bf621c9000b9c5e4dafb05bc3f8ca6f7907a865d89522001a14f582863c6481af9e972a8f1765f0fe852e - languageName: node - linkType: hard - "jest-mock@npm:^27.4.6": version: 27.4.6 resolution: "jest-mock@npm:27.4.6" @@ -15923,19 +15956,6 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:^25.1.0, jest-util@npm:^25.5.0": - version: 25.5.0 - resolution: "jest-util@npm:25.5.0" - dependencies: - "@jest/types": ^25.5.0 - chalk: ^3.0.0 - graceful-fs: ^4.2.4 - is-ci: ^2.0.0 - make-dir: ^3.0.0 - checksum: 4c982e37968914d9e8b8330d2838533a4e8566b80b38cbb0916a19660a805357913aae1382fef35aeb4e348ba5dad77eb7413a16d533cdba7317941e01236352 - languageName: node - linkType: hard - "jest-util@npm:^26.0.0": version: 26.6.2 resolution: "jest-util@npm:26.6.2" @@ -16120,6 +16140,13 @@ __metadata: languageName: node linkType: hard +"js-levenshtein@npm:^1.1.6": + version: 1.1.6 + resolution: "js-levenshtein@npm:1.1.6" + checksum: 409f052a7f1141be4058d97da7860e08efd97fc588b7a4c5cfa0548bc04f6d576644dae65ab630266dff685d56fb90d494e03d4d79cb484c287746b4f1bf0694 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -16173,7 +16200,7 @@ __metadata: languageName: node linkType: hard -"jsdom@npm:^16.2.1, jsdom@npm:^16.6.0": +"jsdom@npm:^16.6.0": version: 16.7.0 resolution: "jsdom@npm:16.7.0" dependencies: @@ -17232,15 +17259,6 @@ __metadata: languageName: node linkType: hard -"lolex@npm:^5.0.0": - version: 5.1.2 - resolution: "lolex@npm:5.1.2" - dependencies: - "@sinonjs/commons": ^1.7.0 - checksum: 7eb468d4ef4746c024d23cb2b75f679f79449a9d5cbe11abadf2f3b147c1d7ffe28816438bedfb8a75c58357a625c2f9ba197b050c226d2b3f0c4a956cf556fb - languageName: node - linkType: hard - "longest@npm:^2.0.1": version: 2.0.1 resolution: "longest@npm:2.0.1" @@ -18145,6 +18163,36 @@ __metadata: languageName: node linkType: hard +"msw@npm:^0.36.4": + version: 0.36.4 + resolution: "msw@npm:0.36.4" + dependencies: + "@mswjs/cookies": ^0.1.6 + "@mswjs/interceptors": ^0.12.7 + "@open-draft/until": ^1.0.3 + "@types/cookie": ^0.4.1 + "@types/inquirer": ^8.1.3 + "@types/js-levenshtein": ^1.1.0 + chalk: 4.1.1 + chokidar: ^3.4.2 + cookie: ^0.4.1 + graphql: ^15.5.1 + headers-utils: ^3.0.2 + inquirer: ^8.2.0 + is-node-process: ^1.0.1 + js-levenshtein: ^1.1.6 + node-fetch: ^2.6.1 + path-to-regexp: ^6.2.0 + statuses: ^2.0.0 + strict-event-emitter: ^0.2.0 + type-fest: ^1.2.2 + yargs: ^17.3.0 + bin: + msw: cli/index.js + checksum: 1eb8d37a4c1323118204ea117e978ac24f73c5867661c3252c01ab29918814b71fa323cfb99ed0ac43fe58862bdb0529ef046361b7d2b554a6ba4f0749c5168b + languageName: node + linkType: hard + "multimap@npm:^1.1.0": version: 1.1.0 resolution: "multimap@npm:1.1.0" @@ -19177,6 +19225,13 @@ __metadata: languageName: node linkType: hard +"outvariant@npm:^1.2.0": + version: 1.2.1 + resolution: "outvariant@npm:1.2.1" + checksum: 1686113d01b6acbd23b9444ecad680f3f8b163817cde76e4c2f818631cfb6a898718b9c8a01f967b23473ed2715e0e46396ba7400cd12ade478f7532687957cd + languageName: node + linkType: hard + "p-cancelable@npm:^1.0.0": version: 1.1.0 resolution: "p-cancelable@npm:1.1.0" @@ -19748,6 +19803,13 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:^6.2.0": + version: 6.2.0 + resolution: "path-to-regexp@npm:6.2.0" + checksum: a6aca74d2d6e2e7594d812f653cf85e9cb5054d3a8d80f099722a44ef6ad22639b02078e5ea83d11db16321c3e4359e3f1ab0274fa78dad0754a6e53f630b0fc + languageName: node + linkType: hard + "path-type@npm:^3.0.0": version: 3.0.0 resolution: "path-type@npm:3.0.0" @@ -22602,6 +22664,13 @@ __metadata: languageName: node linkType: hard +"set-cookie-parser@npm:^2.4.6": + version: 2.4.8 + resolution: "set-cookie-parser@npm:2.4.8" + checksum: e15b5df9a56ab06d4895286033a6aff7b318ad024310df058b5821b3539cc06f716ef529618cac0dd78df40e37830de715f388c0f97f84062dd9be2326efcd0c + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -23270,15 +23339,6 @@ __metadata: languageName: node linkType: hard -"stack-utils@npm:^1.0.1": - version: 1.0.5 - resolution: "stack-utils@npm:1.0.5" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: f82baf8d89536252a55c76866d5be3d04c96b09693a8d2ab3794b9fdec3674e05bd3f3d19345093e2cbba116a1f8f413858e0537bc3c81c605249261c3d26182 - languageName: node - linkType: hard - "stack-utils@npm:^2.0.3": version: 2.0.5 resolution: "stack-utils@npm:2.0.5" @@ -23312,6 +23372,13 @@ __metadata: languageName: node linkType: hard +"statuses@npm:^2.0.0": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + "std-env@npm:^1.1.0": version: 1.3.1 resolution: "std-env@npm:1.3.1" @@ -23412,6 +23479,15 @@ __metadata: languageName: node linkType: hard +"strict-event-emitter@npm:^0.2.0": + version: 0.2.0 + resolution: "strict-event-emitter@npm:0.2.0" + dependencies: + events: ^3.3.0 + checksum: b2bc33aa01e66010f6356368df7b043cc2a96645b5a8caf47226f349d1702f844375ece9d90e69ff1714599c4ef959031d23d3ffb224738a286b88fedcb42a4a + languageName: node + linkType: hard + "strict-uri-encode@npm:^1.0.0": version: 1.1.0 resolution: "strict-uri-encode@npm:1.1.0" @@ -24647,6 +24723,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^1.2.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + "type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" @@ -25590,7 +25673,6 @@ __metadata: husky: ^7.0.4 jest: ^27.4.5 jest-date-mock: ^1.0.8 - jest-environment-jsdom-sixteen: ^2.0.0 jest-localstorage-mock: ^2.4.18 jest-silent-reporter: ^0.5.0 jest-transform-stub: ^2.0.0 @@ -26502,7 +26584,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.0, yargs@npm:^17.2.1": +"yargs@npm:^17.0.0, yargs@npm:^17.2.1, yargs@npm:^17.3.0": version: 17.3.1 resolution: "yargs@npm:17.3.1" dependencies: From f60013fb20e441552bc4dfaf41f0b2c7b690e6f5 Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Mon, 17 Jan 2022 09:44:22 +0100 Subject: [PATCH 07/10] tests(theme): reverted back and removed jest.base.config.json --- packages/theme/jest.config.js | 51 ++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/packages/theme/jest.config.js b/packages/theme/jest.config.js index f4d59f91a..ef0eb5f47 100644 --- a/packages/theme/jest.config.js +++ b/packages/theme/jest.config.js @@ -1,41 +1,54 @@ -const baseConfig = require('./../../jest.base.config'); - /* eslint-disable unicorn/prefer-module */ module.exports = { - ...baseConfig, + globals: { __DEV__: true }, - collectCoverage: false, + coverageReporters: ['lcov'], - testEnvironment: 'jsdom', + coverageThreshold: { global: {} }, + + coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$', '/__mocks__/'], + + coverageDirectory: './coverage/', moduleNameMapper: { - ...baseConfig.moduleNameMapper, + '^@/(.*)$': '/$1', + '^~/(.*)$': '/$1', '^vue$': 'vue/dist/vue.common.js', }, - moduleFileExtensions: ['js', 'vue', 'json', 'ts'], - + testEnvironment: 'jsdom', + transform: { - ...baseConfig.transform, + '^.+\\.(ts)$': 'ts-jest', + '^.+\\.js$': 'babel-jest', '^.+\\.vue$': 'vue-jest', '^.+\\.(css|svg)': 'jest-transform-stub', }, + transformIgnorePatterns: ['node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider)'], + + testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'], + + watchPlugins: [ + 'jest-watch-typeahead/filename', + 'jest-watch-typeahead/testname', + ['jest-watch-toggle-config', { setting: 'verbose' }], + ['jest-watch-toggle-config', { setting: 'collectCoverage' }], + ['jest-watch-toggle-config', { setting: 'notify' }], + ['jest-watch-toggle-config', { setting: 'bail' }], + ], + + collectCoverage: false, + + moduleFileExtensions: ['js', 'vue', 'json', 'ts'], + collectCoverageFrom: [ '/components/**/*.vue', - '/pages/**/*.vue', - ], + '/pages/**/*.vue'], - setupFiles: [ - 'jest-date-mock', - 'jest-localstorage-mock', - ], + setupFiles: ['jest-date-mock', 'jest-localstorage-mock'], setupFilesAfterEnv: ['/jest-setup.js'], - transformIgnorePatterns: [ - 'node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider)', - ], - modulePathIgnorePatterns: ['_theme', 'tests/e2e'], }; From 3243f7b3e822923bfcf6f78919ec6dfa0af7a06b Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Mon, 17 Jan 2022 09:46:45 +0100 Subject: [PATCH 08/10] test(composables): reverted back and removed jest.base.config.json --- packages/composables/jest.config.js | 74 ++++++++++++++++++++++++----- 1 file changed, 62 insertions(+), 12 deletions(-) diff --git a/packages/composables/jest.config.js b/packages/composables/jest.config.js index 0fc82fb59..6d23ed571 100644 --- a/packages/composables/jest.config.js +++ b/packages/composables/jest.config.js @@ -1,20 +1,70 @@ -const baseConfig = require('./../../jest.base.config'); - /* eslint-disable unicorn/prefer-module */ module.exports = { - ...baseConfig, - - collectCoverageFrom: [ - '/composables/**/*.ts' + globals: { + __DEV__: true, + }, + coverageReporters: [ + 'lcov', + ], + coverageThreshold: { + global: {}, + }, + coveragePathIgnorePatterns: [ + '/node_modules/', + '.d.ts$', + '/__mocks__/', ], - - moduleFileExtensions: ['js', 'json', 'ts'], - + coverageDirectory: './coverage/', + moduleNameMapper: { + '^@/(.*)$': '/$1', + '^~/(.*)$': '/$1', + }, + testEnvironment: 'jsdom', transform: { '^.+\\.(ts)$': 'ts-jest', '^.+\\.js$': 'babel-jest', }, - - testEnvironment: 'jsdom', - + transformIgnorePatterns: [ + 'node_modules', + '/node_modules', + ], + testMatch: [ + '/**/__tests__/**/*spec.[jt]s?(x)', + ], + watchPlugins: [ + 'jest-watch-typeahead/filename', + 'jest-watch-typeahead/testname', + [ + 'jest-watch-toggle-config', + { + setting: 'verbose', + }, + ], + [ + 'jest-watch-toggle-config', + { + setting: 'collectCoverage', + }, + ], + [ + 'jest-watch-toggle-config', + { + setting: 'notify', + }, + ], + [ + 'jest-watch-toggle-config', + { + setting: 'bail', + }, + ], + ], + collectCoverageFrom: [ + '/composables/**/*.ts', + ], + moduleFileExtensions: [ + 'js', + 'json', + 'ts', + ], }; From 8f3986b8b091921d0827aafd5d1fb12dc0ef9779 Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Mon, 17 Jan 2022 10:18:36 +0100 Subject: [PATCH 09/10] test(api-client): reverted back and removed jest.base.config.json --- packages/api-client/jest.config.js | 77 ++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/packages/api-client/jest.config.js b/packages/api-client/jest.config.js index 2ce2a5436..8d990f8a0 100644 --- a/packages/api-client/jest.config.js +++ b/packages/api-client/jest.config.js @@ -1,22 +1,71 @@ -const baseConfig = require('./../../jest.base.config'); - /* eslint-disable unicorn/prefer-module */ module.exports = { - ...baseConfig, - - collectCoverageFrom: [ - '/src/**/*.ts', + globals: { + __DEV__: true, + }, + coverageReporters: [ + 'lcov', ], - + coverageThreshold: { + global: {}, + }, + coveragePathIgnorePatterns: [ + '/node_modules/', + '.d.ts$', + '/__mocks__/', + ], + coverageDirectory: './coverage/', moduleNameMapper: { - ...baseConfig.moduleNameMapper, + '^@/(.*)$': '/$1', + '^~/(.*)$': '/$1', 'api-client(.*)$': '$1', }, - - moduleFileExtensions: ['js', 'json', 'ts'], - testEnvironment: 'jsdom', - - // setupFilesAfterEnv: ['/jest.setup.ts'], - + transform: { + '^.+\\.(ts)$': 'ts-jest', + '^.+\\.js$': 'babel-jest', + }, + transformIgnorePatterns: [ + 'node_modules', + '/node_modules', + ], + testMatch: [ + '/**/__tests__/**/*spec.[jt]s?(x)', + ], + watchPlugins: [ + 'jest-watch-typeahead/filename', + 'jest-watch-typeahead/testname', + [ + 'jest-watch-toggle-config', + { + setting: 'verbose', + }, + ], + [ + 'jest-watch-toggle-config', + { + setting: 'collectCoverage', + }, + ], + [ + 'jest-watch-toggle-config', + { + setting: 'notify', + }, + ], + [ + 'jest-watch-toggle-config', + { + setting: 'bail', + }, + ], + ], + collectCoverageFrom: [ + '/src/**/*.ts', + ], + moduleFileExtensions: [ + 'js', + 'json', + 'ts', + ], }; From 8dc12fe8103154a39c85581ff98aeb6a65238b4f Mon Sep 17 00:00:00 2001 From: Kevin Gorjan Date: Mon, 17 Jan 2022 10:19:40 +0100 Subject: [PATCH 10/10] chore: removed jest.base.config.json --- jest.base.config.js | 55 --------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 jest.base.config.js diff --git a/jest.base.config.js b/jest.base.config.js deleted file mode 100644 index 50aa8a509..000000000 --- a/jest.base.config.js +++ /dev/null @@ -1,55 +0,0 @@ -// For a detailed explanation regarding each configuration property, visit: -// https://jestjs.io/docs/en/configuration.html - -module.exports = { - globals: { - __DEV__: true, - }, - // noStackTrace: true, - // bail: true, - // cache: false, - // verbose: true, - // watch: true, - coverageReporters: ['lcov'], - - coverageThreshold: { - global: { - // branches: 50, - // functions: 50, - // lines: 50, - // statements: 50 - }, - }, - - coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$', '/__mocks__/'], - - coverageDirectory: './coverage/', - - moduleNameMapper: { - '^@/(.*)$': '/$1', - '^~/(.*)$': '/$1', - }, - - testEnvironment: 'jsdom', - - transform: { - '^.+\\.(ts)$': 'ts-jest', - '^.+\\.js$': 'babel-jest', - }, - - transformIgnorePatterns: [ - 'node_modules', - '/node_modules', - ], - - testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'], - - watchPlugins: [ - 'jest-watch-typeahead/filename', - 'jest-watch-typeahead/testname', - ['jest-watch-toggle-config', { setting: 'verbose' }], - ['jest-watch-toggle-config', { setting: 'collectCoverage' }], - ['jest-watch-toggle-config', { setting: 'notify' }], - ['jest-watch-toggle-config', { setting: 'bail' }], - ], -};