1
0
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:
Ariella Vu 2022-11-16 01:32:31 +07:00 committed by GitHub
parent be5d70623e
commit b898115bad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View 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();
});
});
});