36 lines
956 B
JavaScript
36 lines
956 B
JavaScript
// __mocks__/chrome.js — Mock Chrome APIs for Node.js testing
|
|
|
|
global.chrome = {
|
|
storage: {
|
|
local: {
|
|
get: jest.fn(async (keys) => {
|
|
const store = {};
|
|
if (typeof keys === 'string') keys = [keys];
|
|
for (const key of keys) {
|
|
store[key] = global.__chromeStore?.[key] ?? null;
|
|
}
|
|
return store;
|
|
}),
|
|
set: jest.fn(async (items) => {
|
|
global.__chromeStore = { ...global.__chromeStore, ...items };
|
|
}),
|
|
remove: jest.fn(async (keys) => {
|
|
if (typeof keys === 'string') keys = [keys];
|
|
for (const key of keys) delete global.__chromeStore?.[key];
|
|
}),
|
|
clear: jest.fn(async () => {
|
|
global.__chromeStore = {};
|
|
})
|
|
}
|
|
},
|
|
runtime: {
|
|
getManifest: jest.fn(() => ({ version: '1.0.0' }))
|
|
},
|
|
action: {
|
|
setBadgeText: jest.fn(async () => {}),
|
|
setBadgeBackgroundColor: jest.fn(async () => {})
|
|
}
|
|
};
|
|
|
|
global.__chromeStore = {};
|