35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
import { loadConfig, saveConfig } from '../push/config.js';
|
|
|
|
describe('config', () => {
|
|
beforeEach(() => {
|
|
// 内存版 chrome.storage.local,验证 load/save 往返(不依赖真实 chrome)
|
|
const store = {};
|
|
globalThis.chrome = {
|
|
storage: {
|
|
local: {
|
|
get: vi.fn(async key => {
|
|
const k = typeof key === 'string' ? key : key[0];
|
|
return k in store ? { [k]: store[k] } : {};
|
|
}),
|
|
set: vi.fn(async obj => { Object.assign(store, obj); }),
|
|
},
|
|
},
|
|
};
|
|
});
|
|
|
|
it('loadConfig returns disabled default when unset', async () => {
|
|
const cfg = await loadConfig();
|
|
expect(cfg.enabled).toBe(false);
|
|
expect(cfg.serverUrl).toBe('');
|
|
});
|
|
|
|
it('saveConfig then loadConfig round-trips', async () => {
|
|
await saveConfig({ enabled: true, serverUrl: 'http://x', token: 't' });
|
|
const cfg = await loadConfig();
|
|
expect(cfg.enabled).toBe(true);
|
|
expect(cfg.serverUrl).toBe('http://x');
|
|
expect(cfg.token).toBe('t');
|
|
});
|
|
});
|