mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
8df8f81df7
* deprecate extensionizer for webextension-polyfill * fix tests * remove extensionizer * fix browser windows api calls * fix broken on firefox * fix getAcceptLanguages call * update more browser apis that are now promisified * remove unnecessary console error ignoring in e2e tests
104 lines
3.2 KiB
JavaScript
104 lines
3.2 KiB
JavaScript
import browser from 'webextension-polyfill';
|
|
import ExtensionPlatform from './extension';
|
|
|
|
jest.mock('webextension-polyfill', () => {
|
|
return {
|
|
runtime: {
|
|
getManifest: jest.fn(),
|
|
},
|
|
};
|
|
});
|
|
|
|
describe('extension platform', () => {
|
|
beforeEach(() => {
|
|
// TODO: Delete this an enable 'resetMocks' in `jest.config.js` instead
|
|
jest.resetAllMocks();
|
|
});
|
|
|
|
describe('getVersion', () => {
|
|
it('should return non-prerelease version', () => {
|
|
browser.runtime.getManifest.mockReturnValue({ version: '1.2.3' });
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
const version = extensionPlatform.getVersion();
|
|
|
|
expect(version).toBe('1.2.3');
|
|
});
|
|
|
|
it('should return SemVer-formatted version for Chrome style manifest of prerelease', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.3.0',
|
|
version_name: '1.2.3-beta.0',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
const version = extensionPlatform.getVersion();
|
|
|
|
expect(version).toBe('1.2.3-beta.0');
|
|
});
|
|
|
|
it('should return SemVer-formatted version for Firefox style manifest of prerelease', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.3beta0',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
const version = extensionPlatform.getVersion();
|
|
|
|
expect(version).toBe('1.2.3-beta.0');
|
|
});
|
|
|
|
it('should throw error if build version is missing from Chrome style prerelease manifest', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.3',
|
|
version_name: '1.2.3-beta.0',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
expect(() => extensionPlatform.getVersion()).toThrow(
|
|
'Version missing build number:',
|
|
);
|
|
});
|
|
|
|
it('should throw error if version name is missing from Chrome style prerelease manifest', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.3.0',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
expect(() => extensionPlatform.getVersion()).toThrow('Invalid version:');
|
|
});
|
|
|
|
it('should throw error if version includes four parts in a Firefox style manifest', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.3.4',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
expect(() => extensionPlatform.getVersion()).toThrow('Invalid version:');
|
|
});
|
|
|
|
it('should throw error if build version is missing from Firefox style prerelease manifest', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.3beta',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
expect(() => extensionPlatform.getVersion()).toThrow(
|
|
'Version contains invalid prerelease:',
|
|
);
|
|
});
|
|
|
|
it('should throw error if patch is missing from Firefox style prerelease manifest', () => {
|
|
browser.runtime.getManifest.mockReturnValue({
|
|
version: '1.2.beta0',
|
|
});
|
|
const extensionPlatform = new ExtensionPlatform();
|
|
|
|
expect(() => extensionPlatform.getVersion()).toThrow(
|
|
'Version contains invalid prerelease:',
|
|
);
|
|
});
|
|
});
|
|
});
|