✨ feat(vscode): webhook 副作用按 assignee 门禁,适配多人协作
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user