UNPKG

@shopify/jest-dom-mocks

Version:
56 lines (51 loc) 1.49 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var utilities = require('./utilities.js'); class Performance { constructor() { this.isUsingMockUserTiming = false; } mock(timing = {}) { if (this.isUsingMockUserTiming) { throw new Error('You tried to mock window.performance.timing when it was already mocked.'); } this.originalUserTiming = window.performance.timing; const mockTiming = { navigationStart: 0, unloadEventStart: 0, unloadEventEnd: 0, redirectStart: 0, redirectEnd: 0, fetchStart: 0, domainLookupStart: 0, domainLookupEnd: 0, connectStart: 0, connectEnd: 0, secureConnectionStart: 0, requestStart: 0, responseStart: 0, responseEnd: 0, domLoading: 0, domInteractive: 0, domContentLoadedEventStart: 0, domContentLoadedEventEnd: 0, domComplete: 0, loadEventStart: 0, loadEventEnd: 0, ...timing }; utilities.set(window.performance, 'timing', mockTiming); this.isUsingMockUserTiming = true; } restore() { if (!this.isUsingMockUserTiming) { throw new Error('You tried to restore window.performance.timing when it was already restored.'); } utilities.set(window.performance, 'timing', this.originalUserTiming); this.isUsingMockUserTiming = false; } isMocked() { return this.isUsingMockUserTiming; } } exports["default"] = Performance;