@shopify/jest-dom-mocks
Version:
Jest mocking utilities for working with the DOM
46 lines (41 loc) • 1.26 kB
JavaScript
;
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;