UNPKG

@yeutech-lab/test-polyfill

Version:

Configure unit test in jest using this polyfill. It provides fetch and localStorage within your test environment.

65 lines (50 loc) 1.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.polyfill = polyfill; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var defaultOptions = { isomorphicFetch: false, fetch: true, localStorage: true, media: true }; function polyfill(options) { var opts = (0, _objectSpread2.default)({}, defaultOptions, options); var root = null; try { root = window || global; } catch (e) { root = global; } if (opts.isomorphicFetch) { var Tough = require('tough-cookie'); var Store = new Tough.MemoryCookieStore(); var rejectPublicSuffixes = false; var cookieJar = new Tough.CookieJar(Store, rejectPublicSuffixes); var fetch = require('fetch-cookie')(require('@yeutech-lab/isomorphic-fetch'), cookieJar); root.fetch = fetch; root.cookieJar = cookieJar; } if (opts.fetch && !opts.isomorphicFetch) { require('whatwg-fetch'); root.fetchMock = require('fetch-mock'); } if (opts.localStorage && !root.localStorage) { root.localStorage = require('localStorage'); } if (opts.media) { root.matchMedia = root.matchMedia || function () { return { matches: false, addListener: function addListener() {}, removeListener: function removeListener() {} }; }; root.requestAnimationFrame = root.requestAnimationFrame || function (callback) { setTimeout(callback, 0); }; } }