import { describe, expect, it } from 'vitest' import { isOwnerOnlyMessage } from './readOnlyGuard' describe('isOwnerOnlyMessage', () => { it('改工单状态的消息要门禁', () => { expect(isOwnerOnlyMessage('column/change')).toBe(true) expect(isOwnerOnlyMessage('issue/delete')).toBe(true) expect(isOwnerOnlyMessage('issue/close')).toBe(true) expect(isOwnerOnlyMessage('dependency/set')).toBe(true) expect(isOwnerOnlyMessage('issue/update-auto-review')).toBe(true) }) it('在本机替别人跑会话的消息要门禁', () => { expect(isOwnerOnlyMessage('issue/implement')).toBe(true) expect(isOwnerOnlyMessage('session/resume')).toBe(true) expect(isOwnerOnlyMessage('session/start-test')).toBe(true) expect(isOwnerOnlyMessage('brainstorm/continue')).toBe(true) }) it('合并分支、删 worktree 要门禁', () => { expect(isOwnerOnlyMessage('git/merge-preview')).toBe(true) expect(isOwnerOnlyMessage('worktree/delete')).toBe(true) }) it('看 PR 改动与本机审查记录放行', () => { expect(isOwnerOnlyMessage('pr-files/get')).toBe(false) expect(isOwnerOnlyMessage('pr-file-diff/get')).toBe(false) expect(isOwnerOnlyMessage('pr-file-summary/generate')).toBe(false) expect(isOwnerOnlyMessage('pr-review/set')).toBe(false) expect(isOwnerOnlyMessage('pr/open')).toBe(false) }) it('接管别人移交过来的工单放行(此时 assignee 已是我)', () => { expect(isOwnerOnlyMessage('handoff/accept')).toBe(false) }) it('看板级操作与工单无关,放行', () => { expect(isOwnerOnlyMessage('issues/refresh')).toBe(false) expect(isOwnerOnlyMessage('issues/set-scope')).toBe(false) expect(isOwnerOnlyMessage('issue/create')).toBe(false) }) })