import { describe, expect, it } from 'vitest' import { decideEventOwnership } from './eventOwnership' describe('decideEventOwnership', () => { it('assignee 是我 → own', () => { expect(decideEventOwnership({ assignees: ['cruldra'], me: 'cruldra', hasLocalSessionEvidence: false, })).toBe('own') }) it('assignee 是别人 → observe,即使本机有终端(重新指派会转移责任)', () => { expect(decideEventOwnership({ assignees: ['chehongwei'], me: 'cruldra', hasLocalSessionEvidence: true, })).toBe('observe') }) it('多 assignee 含我 → own', () => { expect(decideEventOwnership({ assignees: ['chehongwei', 'cruldra'], me: 'cruldra', hasLocalSessionEvidence: false, })).toBe('own') }) it('有 assignee 但身份未知 → observe(无法证明归属时不动作)', () => { expect(decideEventOwnership({ assignees: ['cruldra'], me: undefined, hasLocalSessionEvidence: true, })).toBe('observe') }) it('无 assignee(存量工单)+ 本机有实施/测试终端 → own', () => { expect(decideEventOwnership({ assignees: [], me: 'cruldra', hasLocalSessionEvidence: true, })).toBe('own') }) it('无 assignee + 无本地证据 → observe', () => { expect(decideEventOwnership({ assignees: [], me: 'cruldra', hasLocalSessionEvidence: false, })).toBe('observe') }) it('无 assignee 时本地证据不依赖身份(token 失效也能兜底)', () => { expect(decideEventOwnership({ assignees: [], me: undefined, hasLocalSessionEvidence: true, })).toBe('own') }) })