import { describe, expect, it } from 'vitest' import { parseKanbanSnapshot, snapshotScriptTag, snapshotToScriptJson } from './kanbanSnapshot' const sample = { issues: [{ id: 'o/r#1', number: 1, title: '', column: 'todo' as const, assignees: [], htmlUrl: 'https://x' }], scope: 'mine' as const, me: 'cruldra', globalAutoReview: true, youtrackConfigured: false, } describe('kanbanSnapshot', () => { it('往返:注入 JSON 不含原始 ,parse 还原标题', () => { const json = snapshotToScriptJson(sample) expect(json).not.toContain('') expect(json).toContain('\\u003c') const parsed = parseKanbanSnapshot(JSON.parse(json)) expect(parsed?.issues[0].title).toBe('') expect(parsed?.scope).toBe('mine') }) it('script 标签带 nonce 和 id', () => { const tag = snapshotScriptTag('abc', sample) expect(tag).toContain('id="kanban-snapshot"') expect(tag).toContain('nonce="abc"') expect(tag).toContain('type="application/json"') expect(tag).not.toContain('') }) it('垃圾数据返回 null', () => { expect(parseKanbanSnapshot(null)).toBeNull() expect(parseKanbanSnapshot({ scope: 'mine' })).toBeNull() }) })