Skip to content
Snippets Groups Projects
Verified Commit f974afbc authored by Loïs Poujade's avatar Loïs Poujade
Browse files

Use fetch mock

parent ec86cd35
No related branches found
No related tags found
No related merge requests found
Pipeline #1182 failed
/*
* babel.config.js used to support a UMD built version of Mirador that is
* compatible with IE11 and Edge.
*/
const moduleFormatMap = {
cjs: 'commonjs',
es: false,
};
// eslint-disable-next-line func-names
module.exports = function (api) {
const isDevelopmentEnv = api.env('development');
const isProductionEnv = api.env('production');
const isTestEnv = api.env('test');
const presets = [
isTestEnv && [
'@babel/preset-env',
{
modules: 'commonjs',
targets: {
node: 'current',
},
},
'@babel/preset-react',
],
(isProductionEnv || isDevelopmentEnv) && [
'@babel/preset-env',
{
corejs: 3,
exclude: ['transform-typeof-symbol'],
forceAllTransforms: true,
modules: moduleFormatMap[process.env.MODULE_FORMAT] || false,
useBuiltIns: 'entry',
},
],
[
'@babel/preset-react',
{
development: isDevelopmentEnv || isTestEnv,
useBuiltIns: true,
},
],
].filter(Boolean);
const plugins = [
'babel-plugin-macros',
'@babel/plugin-transform-destructuring',
[
'@babel/plugin-proposal-class-properties',
{
loose: true,
},
],
['@babel/plugin-proposal-private-property-in-object', { loose: true }],
['@babel/plugin-proposal-private-methods', { loose: true }],
[
'@babel/plugin-proposal-object-rest-spread',
{
useBuiltIns: true,
},
],
[
'@babel/plugin-transform-runtime',
{
corejs: false,
helpers: false, // Needed to support IE/Edge
regenerator: true,
},
],
[
'@babel/plugin-transform-regenerator',
{
async: false,
},
],
['transform-react-remove-prop-types',
{
ignoreFilenames: ['node_modules'],
removeImport: true,
},
],
['lodash', {
id: [
'lodash',
],
},
],
].filter(Boolean);
return {
plugins,
presets,
};
};
......@@ -4,5 +4,8 @@
"<rootDir>/**/__tests__/**/*.{js,jsx}",
"<rootDir>/src/**/?(*.)(spec|test|unit).{js,jsx}"
],
"setupFiles": [
"<rootDir>/setupJest.js"
],
"preset": "jest-puppeteer"
}
Source diff could not be displayed: it is too large. Options to address this: view the blob.
// Setup Jest to mock fetch
import { JSDOM } from 'jsdom'; // eslint-disable-line import/no-extraneous-dependencies
// import { JSDOM } from 'jsdom'; // eslint-disable-line import/no-extraneous-dependencies
import fetch from 'jest-fetch-mock'; // eslint-disable-line import/no-extraneous-dependencies
import Enzyme from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies
import Adapter from 'enzyme-adapter-react-16'; // eslint-disable-line import/no-extraneous-dependencies
// import Enzyme from 'enzyme'; // eslint-disable-line import/no-extraneous-dependencies
// import Adapter from 'enzyme-adapter-react-16'; // eslint-disable-line import/no-extraneous-dependencies
const jsdom = new JSDOM('<!doctype html><html><body><div id="main"></div></body></html>', { url: 'https://localhost' });
const { window } = jsdom;
// const jsdom = new JSDOM('<!doctype html><html><body><div id="main"></div></body></html>', { url: 'https://localhost' });
// const { window } = jsdom;
jest.setTimeout(10000);
// jest.setTimeout(10000);
window.HTMLCanvasElement.prototype.getContext = () => {};
// window.HTMLCanvasElement.prototype.getContext = () => {};
jest.setMock('isomorphic-unfetch', fetch);
require('jest-fetch-mock').enableMocks(); // eslint-disable-line import/no-extraneous-dependencies
global.window = window;
global.navigator = {
userAgent: 'node.js',
};
/* eslint-disable require-jsdoc, class-methods-use-this */
class IntersectionObserverPolyfill {
observe() {
}
disconnect() {
}
}
/* eslint-enable require-jsdoc, class-methods-use-this */
global.IntersectionObserver = IntersectionObserverPolyfill;
/** */
function Path2D() {
}
global.Path2D = Path2D;
/**
* copy object property descriptors from `src` to `target`
* @param {*} src
* @param {*} target
*/
const copyProps = (src, target) => {
Object.defineProperties(target, {
...Object.getOwnPropertyDescriptors(src),
...Object.getOwnPropertyDescriptors(target),
});
};
/*
avoid 'ReferenceError: HTMLElement is not defined'
see https://github.com/airbnb/enzyme/blob/master/docs/guides/jsdom.md
for further information
*/
copyProps(window, global);
Enzyme.configure({ adapter: new Adapter() });
jest.mock('react-i18next', () => ({
// this mock makes sure any components using the translate HoC receive the t function as a prop
withTranslation: () => (Component) => {
Component.defaultProps = { // eslint-disable-line no-param-reassign
...Component.defaultProps, t: k => k,
};
return Component;
},
}));
// global.window = window;
// global.navigator = {
// userAgent: 'node.js',
// };
//
// /* eslint-disable require-jsdoc, class-methods-use-this */
// class IntersectionObserverPolyfill {
// observe() {
// }
//
// disconnect() {
// }
// }
// /* eslint-enable require-jsdoc, class-methods-use-this */
//
// global.IntersectionObserver = IntersectionObserverPolyfill;
//
// /** */
// function Path2D() {
// }
//
// global.Path2D = Path2D;
// /**
// * copy object property descriptors from `src` to `target`
// * @param {*} src
// * @param {*} target
// */
// const copyProps = (src, target) => {
// Object.defineProperties(target, {
// ...Object.getOwnPropertyDescriptors(src),
// ...Object.getOwnPropertyDescriptors(target),
// });
// };
//
// /*
// avoid 'ReferenceError: HTMLElement is not defined'
// see https://github.com/airbnb/enzyme/blob/master/docs/guides/jsdom.md
// for further information
// */
// copyProps(window, global);
//
// Enzyme.configure({ adapter: new Adapter() });
//
// jest.mock('react-i18next', () => ({
// // this mock makes sure any components using the translate HoC receive the t function as a prop
// withTranslation: () => (Component) => {
// Component.defaultProps = { // eslint-disable-line no-param-reassign
// ...Component.defaultProps, t: k => k,
// };
// return Component;
// },
// }));
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment