Skip to content
Snippets Groups Projects
Select Git revision
  • f72dc6312179de3642f90b7cbd196eeedd8a7e87
  • annotation-on-video default protected
  • demo_ci
  • 3-upstream-01022023
  • master
  • gh3538-captions
  • 16-adapt-for-images-annot
  • 15-api-for-annotations-on-video
  • 15-annotations-on-videos
  • video_for_annotations
  • wip-1-annotations-on-videos
  • 9-videoviewer-tests
  • 9_wip_videotests
  • 6-fix-tests-and-ci
  • _fix_ci
  • wip-webpack-from-git
16 results

setupJest.js

Blame
  • setupJest.js 1.14 KiB
    // Setup Jest to mock fetch
    
    import { JSDOM } from 'jsdom'; // import jsdom for tests on code that is not fully-managed by react (openseadragon, for instance)
    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
    
    const jsdom = new JSDOM('<!doctype html><html><body></body></html>');
    const { window } = jsdom;
    
    function copyProps(src, target) {
      const props = Object.getOwnPropertyNames(src)
            .filter(prop => typeof target[prop] === 'undefined')
        .reduce((result, prop) => ({
          ...result,
          [prop]: Object.getOwnPropertyDescriptor(src, prop),
        }), {});
      Object.defineProperties(target, props);
    }
    
    jest.setMock('node-fetch', fetch);
    global.fetch = require('jest-fetch-mock'); // eslint-disable-line import/no-extraneous-dependencies
    global.window = window;
    global.document = window.document;
    global.navigator = {
      userAgent: 'node.js',
    };
    copyProps(window, global);
    
    
    Enzyme.configure({ adapter: new Adapter() });