Skip to content

Commit

Permalink
Jest: Add browser.runtime (webextension-polyfill) utils tests (#16483)
Browse files Browse the repository at this point in the history
* jest: add browser-runtime.utils tests

* browser-runtime.utils: rm checkForLastErrorAndWarn
- will be removing use in #16488
  • Loading branch information
digiwand authored Nov 15, 2022
1 parent be5d706 commit b898115
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions shared/modules/browser-runtime.utils.test.js
Original file line number Diff line number Diff line change
@@ -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();
});
});
});

0 comments on commit b898115

Please sign in to comment.