mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-22 09:23:21 +01:00
Jest: Add browser.runtime (webextension-polyfill) utils tests (#16483)
* jest: add browser-runtime.utils tests * browser-runtime.utils: rm checkForLastErrorAndWarn - will be removing use in https://github.com/MetaMask/metamask-extension/pull/16488
This commit is contained in:
parent
be5d70623e
commit
b898115bad
54
shared/modules/browser-runtime.utils.test.js
Normal file
54
shared/modules/browser-runtime.utils.test.js
Normal file
@ -0,0 +1,54 @@
|
||||
import sinon from 'sinon';
|
||||
import browser from 'webextension-polyfill';
|
||||
import log from 'loglevel';
|
||||
import * as BrowserRuntimeUtil from './browser-runtime.utils';
|
||||
|
||||
const mockLastError = { message: 'error', stack: [] };
|
||||
|
||||
describe('Browser Runtime Utils', () => {
|
||||
beforeAll(() => {
|
||||
sinon.replace(browser, 'runtime', {
|
||||
lastError: undefined,
|
||||
});
|
||||
});
|
||||
|
||||
describe('checkForLastError', () => {
|
||||
it('should return undefined if no lastError found', () => {
|
||||
expect(BrowserRuntimeUtil.checkForLastError()).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should return the lastError (Error object) if lastError is found', () => {
|
||||
sinon.stub(browser.runtime, 'lastError').value(mockLastError);
|
||||
|
||||
expect(BrowserRuntimeUtil.checkForLastError()).toStrictEqual(
|
||||
mockLastError,
|
||||
);
|
||||
});
|
||||
|
||||
it('should return an Error object if the lastError is found with no stack', () => {
|
||||
sinon
|
||||
.stub(browser.runtime, 'lastError')
|
||||
.value({ message: mockLastError.message });
|
||||
|
||||
const result = BrowserRuntimeUtil.checkForLastError();
|
||||
|
||||
expect(result).toStrictEqual(expect.any(Error));
|
||||
expect(result).toHaveProperty('stack');
|
||||
expect(result.message).toBe(mockLastError.message);
|
||||
});
|
||||
});
|
||||
|
||||
describe('checkForLastErrorAndLog', () => {
|
||||
it('should log and return error if error was found', () => {
|
||||
sinon.stub(browser.runtime, 'lastError').value({ ...mockLastError });
|
||||
sinon.stub(log, 'error');
|
||||
|
||||
const result = BrowserRuntimeUtil.checkForLastErrorAndLog();
|
||||
|
||||
expect(log.error.calledWith(result)).toBeTruthy();
|
||||
expect(result).toStrictEqual(mockLastError);
|
||||
|
||||
log.error.restore();
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user