UNPKG

@shopify/jest-dom-mocks

Version:
46 lines (41 loc) 1.26 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var utilities = require('./utilities.js'); class Connection { constructor() { this.isUsingMockConnection = false; } mock(timing = {}) { const globalNavigator = navigator; if (this.isUsingMockConnection) { throw new Error('You tried to mock navigator.connection when it was already mocked.'); } this.originalConnection = globalNavigator.connection; const mockConnection = { addEventListener: () => {}, removeEventListener: () => {}, dispatchEvent: () => false, type: 'unknown', downlink: 0, effectiveType: '3g', onchange: null, rtt: 100, saveData: false, ...timing }; utilities.set(globalNavigator, 'connection', mockConnection); this.isUsingMockConnection = true; } restore() { const globalNavigator = navigator; if (!this.isUsingMockConnection) { throw new Error('You tried to restore navigator.connection when it was already restored.'); } utilities.set(globalNavigator, 'connection', this.originalConnection); this.isUsingMockConnection = false; } isMocked() { return this.isUsingMockConnection; } } exports.Connection = Connection;