Files
LexAI/tests/unit/setup.ts
john kevin asprec b7798047dc test: typecheck test files in CI; drop mock-only test; richer chrome mock
- 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>
2026-07-14 21:45:22 +08:00

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;