61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
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')
|
|
})
|
|
})
|