- typecheck now also runs tsc over tsconfig.test.json (test files were never type-checked before). - Delete tests/unit/background.test.ts, which only asserted the vitest chrome mock's own behavior — every remaining test imports production code from src/lib. - Baseline mock gains runtime.id, storage.session/remove, contextMenus, and tabs.sendMessage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
41 lines
928 B
TypeScript
41 lines
928 B
TypeScript
// Baseline Chrome extension API mock. Individual tests may rebuild
|
|
// global.chrome to control specifics (e.g. runtime.id presence).
|
|
global.chrome = {
|
|
storage: {
|
|
local: {
|
|
get: vi.fn((keys, cb) => cb({})),
|
|
set: vi.fn((data, cb) => cb && cb()),
|
|
remove: vi.fn((keys, cb) => cb && cb()),
|
|
},
|
|
session: {
|
|
get: vi.fn((keys, cb) => cb({})),
|
|
set: vi.fn((data, cb) => cb && cb()),
|
|
},
|
|
sync: {
|
|
get: vi.fn((keys, cb) => cb({})),
|
|
set: vi.fn((data, cb) => cb && cb()),
|
|
},
|
|
},
|
|
runtime: {
|
|
id: 'test-extension-id',
|
|
sendMessage: vi.fn(),
|
|
onMessage: {
|
|
addListener: vi.fn(),
|
|
},
|
|
onInstalled: {
|
|
addListener: vi.fn(),
|
|
},
|
|
openOptionsPage: vi.fn(),
|
|
},
|
|
contextMenus: {
|
|
create: vi.fn(),
|
|
removeAll: vi.fn((cb) => cb && cb()),
|
|
onClicked: {
|
|
addListener: vi.fn(),
|
|
},
|
|
},
|
|
tabs: {
|
|
sendMessage: vi.fn(),
|
|
},
|
|
} as any;
|