jest-webextension-mock
Advanced tools
Comparing version 3.6.1 to 3.7.0
@@ -8,3 +8,3 @@ describe('browser.browserAction', () => { | ||
}); | ||
test('getTitle', done => { | ||
test('getTitle', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -33,3 +33,3 @@ expect(jest.isMockFunction(browser.browserAction.getTitle)).toBe(true); | ||
}); | ||
test('getPopup', done => { | ||
test('getPopup', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -51,3 +51,3 @@ expect(jest.isMockFunction(browser.browserAction.getPopup)).toBe(true); | ||
}); | ||
test('getBadgeText', done => { | ||
test('getBadgeText', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -75,3 +75,3 @@ expect(jest.isMockFunction(browser.browserAction.getBadgeText)).toBe(true); | ||
}); | ||
test('getBadgeBackgroundColor', done => { | ||
test('getBadgeBackgroundColor', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -78,0 +78,0 @@ expect( |
describe('browser.commands', () => { | ||
test('getAll', done => { | ||
test('getAll', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -4,0 +4,0 @@ expect(jest.isMockFunction(browser.commands.getAll)).toBe(true); |
describe('chrome.notifications', () => { | ||
test('create', done => { | ||
test('create', (done) => { | ||
const options = { type: 'basic' }; | ||
@@ -34,3 +34,3 @@ const callback = jest.fn(() => done()); | ||
test('update', done => { | ||
test('update', (done) => { | ||
const options = { type: 'basic' }; | ||
@@ -56,3 +56,3 @@ const callback = jest.fn(() => done()); | ||
test('clear', done => { | ||
test('clear', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -71,3 +71,3 @@ | ||
test('getAll', done => { | ||
test('getAll', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -86,3 +86,3 @@ | ||
test('getPermissionLevel', done => { | ||
test('getPermissionLevel', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -89,0 +89,0 @@ |
@@ -20,3 +20,3 @@ beforeEach(() => { | ||
}); | ||
test('connect.onMessage listener', done => { | ||
test('connect.onMessage listener', (done) => { | ||
const name = 'CONNECT_NAME'; | ||
@@ -35,3 +35,3 @@ const listener = jest.fn(); | ||
}); | ||
test('sendMessage', done => { | ||
test('sendMessage', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -45,3 +45,3 @@ expect(jest.isMockFunction(browser.runtime.sendMessage)).toBe(true); | ||
}); | ||
test('sendMessage listener', done => { | ||
test('sendMessage listener', (done) => { | ||
const listener = jest.fn(); | ||
@@ -85,3 +85,3 @@ browser.runtime.onMessage.addListener(listener); | ||
}); | ||
['addListener', 'removeListener', 'hasListener'].forEach(method => { | ||
['addListener', 'removeListener', 'hasListener'].forEach((method) => { | ||
test(`onConnect.${method}`, () => { | ||
@@ -95,3 +95,3 @@ const callback = jest.fn(); | ||
}); | ||
['addListener', 'removeListener', 'hasListener'].forEach(method => { | ||
['addListener', 'removeListener', 'hasListener'].forEach((method) => { | ||
test(`onInstalled.${method}`, () => { | ||
@@ -98,0 +98,0 @@ const callback = jest.fn(); |
describe('browser.storage', () => { | ||
['addListener', 'removeListener', 'hasListener'].forEach(method => { | ||
['addListener', 'removeListener', 'hasListener'].forEach((method) => { | ||
test(`onChanged.${method}`, () => { | ||
@@ -14,3 +14,3 @@ const callback = jest.fn(); | ||
describe('browser.storage', () => { | ||
['sync', 'local', 'managed'].forEach(type => { | ||
['sync', 'local', 'managed'].forEach((type) => { | ||
describe(type, () => { | ||
@@ -20,5 +20,5 @@ const storage = browser.storage[type]; | ||
expect(jest.isMockFunction(storage.get)).toBe(true); | ||
test('a string key', done => { | ||
test('a string key', (done) => { | ||
const key = 'test'; | ||
storage.get(key, result => { | ||
storage.get(key, (result) => { | ||
expect(result).toBeDefined(); | ||
@@ -30,8 +30,8 @@ expect(typeof result === 'object').toBeTruthy(); | ||
}); | ||
test('an array key', done => { | ||
test('an array key', (done) => { | ||
const keys = ['test1', 'test2']; | ||
storage.get(keys, result => { | ||
storage.get(keys, (result) => { | ||
expect(result).toBeDefined(); | ||
expect(typeof result === 'object').toBeTruthy(); | ||
keys.forEach(k => { | ||
keys.forEach((k) => { | ||
expect(result).toHaveProperty(k, undefined); | ||
@@ -42,8 +42,8 @@ }); | ||
}); | ||
test('an object key', done => { | ||
test('an object key', (done) => { | ||
const key = { test: [] }; | ||
storage.get(key, result => { | ||
storage.get(key, (result) => { | ||
expect(result).toBeDefined(); | ||
expect(typeof result === 'object').toBeTruthy(); | ||
Object.keys(key).forEach(k => { | ||
Object.keys(key).forEach((k) => { | ||
expect(result).toHaveProperty(k); | ||
@@ -75,3 +75,3 @@ expect(result[k]).toEqual(key[k]); | ||
}); | ||
test('getBytesInUse', done => { | ||
test('getBytesInUse', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -86,3 +86,3 @@ expect(jest.isMockFunction(storage.getBytesInUse)).toBe(true); | ||
}); | ||
test('set', done => { | ||
test('set', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -97,3 +97,3 @@ expect(jest.isMockFunction(storage.set)).toBe(true); | ||
}); | ||
test('remove', done => { | ||
test('remove', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -108,3 +108,3 @@ expect(jest.isMockFunction(storage.remove)).toBe(true); | ||
}); | ||
test('clear', done => { | ||
test('clear', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -119,3 +119,3 @@ expect(jest.isMockFunction(browser.storage.sync.clear)).toBe(true); | ||
}); | ||
test('real scenario', done => { | ||
test('real scenario', (done) => { | ||
expect(jest.isMockFunction(storage.get)).toBe(true); | ||
@@ -128,3 +128,3 @@ expect(jest.isMockFunction(storage.set)).toBe(true); | ||
// get 'key' | ||
storage.get(['key'], result => { | ||
storage.get(['key'], (result) => { | ||
expect(result).toBeDefined(); | ||
@@ -138,3 +138,3 @@ expect(typeof result === 'object').toBeTruthy(); | ||
// get all values | ||
storage.get(null, result => { | ||
storage.get(null, (result) => { | ||
expect(result).toHaveProperty('key', undefined); | ||
@@ -145,3 +145,3 @@ expect(result).toHaveProperty('foo', 'bar'); | ||
storage.clear(() => { | ||
storage.get(['key', 'foo', 'foo2'], result => { | ||
storage.get(['key', 'foo', 'foo2'], (result) => { | ||
expect(result).toHaveProperty('key', undefined); | ||
@@ -148,0 +148,0 @@ expect(result).toHaveProperty('foo', undefined); |
describe('browser.tabs', () => { | ||
test('get', done => { | ||
test('get', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -9,3 +9,3 @@ expect(jest.isMockFunction(chrome.tabs.get)).toBe(true); | ||
}); | ||
test('getCurrent', done => { | ||
test('getCurrent', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -28,3 +28,3 @@ expect(jest.isMockFunction(chrome.tabs.getCurrent)).toBe(true); | ||
}); | ||
test('create', done => { | ||
test('create', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -42,3 +42,3 @@ const props = { pinned: true }; | ||
}); | ||
test('duplicate', done => { | ||
test('duplicate', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -51,3 +51,3 @@ expect(jest.isMockFunction(chrome.tabs.duplicate)).toBe(true); | ||
}); | ||
test('remove', done => { | ||
test('remove', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -62,3 +62,3 @@ expect(jest.isMockFunction(chrome.tabs.remove)).toBe(true); | ||
}); | ||
test('query', done => { | ||
test('query', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -71,3 +71,3 @@ expect(jest.isMockFunction(chrome.tabs.query)).toBe(true); | ||
}); | ||
test('highlight', done => { | ||
test('highlight', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -79,3 +79,3 @@ expect(jest.isMockFunction(chrome.tabs.highlight)).toBe(true); | ||
}); | ||
test('update', done => { | ||
test('update', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -91,3 +91,3 @@ const props = { pinned: true }; | ||
}); | ||
test('move', done => { | ||
test('move', (done) => { | ||
const callback = jest.fn(() => done()); | ||
@@ -105,3 +105,3 @@ const props = { pinned: true }; | ||
}); | ||
['addListener', 'removeListener', 'hasListener'].forEach(method => { | ||
['addListener', 'removeListener', 'hasListener'].forEach((method) => { | ||
test(`onUpdated.${method}`, () => { | ||
@@ -124,2 +124,20 @@ const callback = jest.fn(); | ||
}); | ||
test('sendMessage', (done) => { | ||
const callback = jest.fn(() => done()); | ||
expect(jest.isMockFunction(chrome.tabs.sendMessage)).toBe(true); | ||
chrome.tabs.sendMessage(1, { test: 'message' }, callback); | ||
expect(chrome.tabs.sendMessage).toHaveBeenCalledTimes(1); | ||
expect(callback).toHaveBeenCalledTimes(1); | ||
chrome.tabs.sendMessage(1, { test: 'message' }); | ||
expect(chrome.tabs.sendMessage).toHaveBeenCalledTimes(2); | ||
}); | ||
test('sendMessage listener', (done) => { | ||
const listener = jest.fn(); | ||
browser.runtime.onMessage.addListener(listener); | ||
chrome.tabs.sendMessage(1, { test: 'message' }, done); | ||
expect(listener).toHaveBeenCalledWith(1, { test: 'message' }); | ||
}); | ||
test('sendMessage promise', () => { | ||
return expect(chrome.tabs.sendMessage({})).resolves.toBeUndefined(); | ||
}); | ||
}); |
{ | ||
"name": "jest-webextension-mock", | ||
"version": "3.6.1", | ||
"description": "Mock the components of a WebExtension", | ||
"main": "dist/setup.js", | ||
"module": "src/setup.js", | ||
"author": "Bryan Clark <clarkbw@gmail.com> (https://twitter.com/clarkbw)", | ||
"license": "ISC", | ||
"scripts": { | ||
"test": "jest", | ||
"build": "rollup -c", | ||
"prettier": "prettier --write \"{config,src,__{tests,setups}__}/**/*.js\" rollup.config.js", | ||
"eslint-check": "eslint --print-config .eslintrc.js | eslint-config-prettier-check" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.9.0", | ||
"@babel/preset-env": "^7.9.5", | ||
"babel-core": "^7.0.0-bridge.0", | ||
"babel-jest": "^25.4.0", | ||
"eslint": "^6.8.0", | ||
"eslint-config-prettier": "^6.11.0", | ||
"eslint-plugin-prettier": "^3.1.3", | ||
"jest": "^25.4.0", | ||
"prettier": "^2.0.5", | ||
"rollup": "^2.7.3", | ||
"rollup-plugin-babel": "^4.4.0", | ||
"rollup-plugin-node-resolve": "^5.2.0", | ||
"rollup-watch": "^4.0.0" | ||
}, | ||
"jest": { | ||
"bail": true, | ||
"coverageDirectory": "./coverage/", | ||
"coverageReporters": [ | ||
"json", | ||
"lcov", | ||
"text", | ||
"html" | ||
], | ||
"collectCoverage": true, | ||
"setupFiles": [ | ||
"./__setups__/chrome.js" | ||
] | ||
} | ||
"name": "jest-webextension-mock", | ||
"version": "3.7.0", | ||
"description": "Mock the components of a WebExtension", | ||
"main": "dist/setup.js", | ||
"module": "src/setup.js", | ||
"author": "Bryan Clark <clarkbw@gmail.com> (https://twitter.com/clarkbw)", | ||
"license": "ISC", | ||
"scripts": { | ||
"test": "jest", | ||
"build": "rollup -c", | ||
"prettier": "prettier --write \"{config,src,__{tests,setups}__}/**/*.js\" rollup.config.js", | ||
"eslint-check": "eslint --print-config .eslintrc.js | eslint-config-prettier-check" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "^7.11.6", | ||
"@babel/preset-env": "^7.11.5", | ||
"babel-core": "^7.0.0-bridge.0", | ||
"babel-jest": "^26.5.2", | ||
"eslint": "^7.11.0", | ||
"eslint-config-prettier": "^6.12.0", | ||
"eslint-plugin-prettier": "^3.1.4", | ||
"jest": "^26.5.3", | ||
"prettier": "^2.1.2", | ||
"rollup": "^2.30.0", | ||
"rollup-plugin-babel": "^4.4.0", | ||
"rollup-plugin-node-resolve": "^5.2.0", | ||
"rollup-watch": "^4.0.0" | ||
}, | ||
"jest": { | ||
"bail": true, | ||
"coverageDirectory": "./coverage/", | ||
"coverageReporters": [ | ||
"json", | ||
"lcov", | ||
"text", | ||
"html" | ||
], | ||
"collectCoverage": true, | ||
"setupFiles": [ | ||
"./__setups__/chrome.js" | ||
] | ||
} | ||
} |
// https://developer.chrome.com/extensions/commands | ||
export const commands = { | ||
getAll: jest.fn(cb => { | ||
getAll: jest.fn((cb) => { | ||
if (cb !== undefined) { | ||
@@ -6,0 +6,0 @@ return cb(); |
export const i18n = { | ||
getAcceptLanguages: jest.fn(), | ||
getMessage: jest.fn(key => `Translated<${key}>`), | ||
getMessage: jest.fn((key) => `Translated<${key}>`), | ||
getUILanguage: jest.fn(() => 'en'), | ||
detectLanguage: jest.fn(), | ||
}; |
@@ -25,4 +25,4 @@ const cbOrPromise = (cb, value) => { | ||
clear: jest.fn((notificationId, cb) => cbOrPromise(cb, true)), | ||
getAll: jest.fn(cb => cbOrPromise(cb, [])), | ||
getPermissionLevel: jest.fn(cb => cbOrPromise(cb, 'granted')), | ||
getAll: jest.fn((cb) => cbOrPromise(cb, [])), | ||
getPermissionLevel: jest.fn((cb) => cbOrPromise(cb, 'granted')), | ||
onClosed: { | ||
@@ -29,0 +29,0 @@ addListener: jest.fn(), |
@@ -1,4 +0,4 @@ | ||
let onMessageListeners = []; | ||
export let onMessageListeners = []; | ||
export const runtime = { | ||
connect: jest.fn(function({ name }) { | ||
connect: jest.fn(function ({ name }) { | ||
return { | ||
@@ -11,3 +11,3 @@ name, | ||
onMessage: { | ||
addListener: jest.fn(listener => { | ||
addListener: jest.fn((listener) => { | ||
onMessageListeners.push(listener); | ||
@@ -20,3 +20,3 @@ }), | ||
sendMessage: jest.fn((message, cb) => { | ||
onMessageListeners.forEach(listener => listener(message)); | ||
onMessageListeners.forEach((listener) => listener(message)); | ||
if (cb !== undefined) { | ||
@@ -28,9 +28,11 @@ return cb(); | ||
onMessage: { | ||
addListener: jest.fn(listener => { | ||
addListener: jest.fn((listener) => { | ||
onMessageListeners.push(listener); | ||
}), | ||
removeListener: jest.fn(listener => { | ||
onMessageListeners = onMessageListeners.filter(lstn => lstn !== listener); | ||
removeListener: jest.fn((listener) => { | ||
onMessageListeners = onMessageListeners.filter( | ||
(lstn) => lstn !== listener | ||
); | ||
}), | ||
hasListener: jest.fn(listener => onMessageListeners.includes(listener)), | ||
hasListener: jest.fn((listener) => onMessageListeners.includes(listener)), | ||
}, | ||
@@ -47,3 +49,3 @@ onConnect: { | ||
}, | ||
getURL: jest.fn(function(path) { | ||
getURL: jest.fn(function (path) { | ||
return path; | ||
@@ -50,0 +52,0 @@ }), |
@@ -15,5 +15,5 @@ /** | ||
// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#exportFunction | ||
global.exportFunction = jest.fn(func => func); | ||
global.exportFunction = jest.fn((func) => func); | ||
// https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#cloneInto | ||
global.cloneInto = jest.fn(obj => obj); | ||
global.cloneInto = jest.fn((obj) => obj); | ||
// } |
@@ -38,3 +38,3 @@ let store = {}; | ||
set: jest.fn((payload, cb) => { | ||
Object.keys(payload).forEach(key => (store[key] = payload[key])); | ||
Object.keys(payload).forEach((key) => (store[key] = payload[key])); | ||
if (cb !== undefined) { | ||
@@ -47,3 +47,3 @@ return cb(); | ||
const keys = typeof id === 'string' ? [id] : id; | ||
keys.forEach(key => delete store[key]); | ||
keys.forEach((key) => delete store[key]); | ||
if (cb !== undefined) { | ||
@@ -54,3 +54,3 @@ return cb(); | ||
}), | ||
clear: jest.fn(cb => { | ||
clear: jest.fn((cb) => { | ||
store = {}; | ||
@@ -78,3 +78,3 @@ if (cb !== undefined) { | ||
set: jest.fn((payload, cb) => { | ||
Object.keys(payload).forEach(key => (store[key] = payload[key])); | ||
Object.keys(payload).forEach((key) => (store[key] = payload[key])); | ||
if (cb !== undefined) { | ||
@@ -87,3 +87,3 @@ return cb(); | ||
const keys = typeof id === 'string' ? [id] : id; | ||
keys.forEach(key => delete store[key]); | ||
keys.forEach((key) => delete store[key]); | ||
if (cb !== undefined) { | ||
@@ -94,3 +94,3 @@ return cb(); | ||
}), | ||
clear: jest.fn(cb => { | ||
clear: jest.fn((cb) => { | ||
store = {}; | ||
@@ -118,3 +118,3 @@ if (cb !== undefined) { | ||
set: jest.fn((payload, cb) => { | ||
Object.keys(payload).forEach(key => (store[key] = payload[key])); | ||
Object.keys(payload).forEach((key) => (store[key] = payload[key])); | ||
if (cb !== undefined) { | ||
@@ -127,3 +127,3 @@ return cb(); | ||
const keys = typeof id === 'string' ? [id] : id; | ||
keys.forEach(key => delete store[key]); | ||
keys.forEach((key) => delete store[key]); | ||
if (cb !== undefined) { | ||
@@ -134,3 +134,3 @@ return cb(); | ||
}), | ||
clear: jest.fn(cb => { | ||
clear: jest.fn((cb) => { | ||
store = {}; | ||
@@ -137,0 +137,0 @@ if (cb !== undefined) { |
// https://developer.chrome.com/extensions/tabs | ||
import { onMessageListeners } from './runtime'; | ||
export const tabs = { | ||
get: jest.fn((id = '', cb = () => {}) => cb({})), | ||
getCurrent: jest.fn(cb => cb({})), | ||
getCurrent: jest.fn((cb) => cb({})), | ||
connect: jest.fn((id = '', info = {}) => { | ||
@@ -40,3 +41,3 @@ // returns a Port | ||
move: jest.fn((ids = [], props = {}, cb = () => {}) => | ||
cb(ids.map(id => Object.assign({}, props, { id }))) | ||
cb(ids.map((id) => Object.assign({}, props, { id }))) | ||
), | ||
@@ -48,4 +49,10 @@ onUpdated: { | ||
}, | ||
sendMessage: jest.fn(), | ||
sendMessage: jest.fn((tabId, message, cb) => { | ||
onMessageListeners.forEach((listener) => listener(tabId, message)); | ||
if (cb !== undefined) { | ||
return cb(); | ||
} | ||
return Promise.resolve(); | ||
}), | ||
reload: jest.fn((tabId, reloadProperties, cb) => cb()), | ||
}; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
61273
1663