import { describe, it, expect, beforeEach, afterEach } from 'vitest' import { mkdtempSync, rmSync } from 'fs' import { join } from 'path' import { tmpdir } from 'os' import { GlobalSettingsService } from '../../src/main/services/global-settings' let dir: string let svc: GlobalSettingsService beforeEach(() => { dir = mkdtempSync(join(tmpdir(), 'bilin-settings-')) svc = new GlobalSettingsService(dir) }) afterEach(() => { rmSync(dir, { recursive: true, force: true }) }) describe('GlobalSettingsService', () => { it('returns defaults when file missing', () => { const s = svc.get() expect(s.onboardingCompleted).toBe(false) expect(s.theme).toBe('default') expect(s.language).toBe('zh-CN') }) it('persists penName update', () => { svc.update({ penName: '山海' }) const s2 = new GlobalSettingsService(dir) expect(s2.get().penName).toBe('山海') }) })