import { describe, expect, it } from 'vitest' import { isIssueMine, issueOwnerLogin } from './issueOwnership' describe('isIssueMine', () => { it('assignee 含我 → 可写', () => { expect(isIssueMine({ poster: 'chehongwei', assignees: ['cruldra'] }, 'cruldra')).toBe(true) }) it('assignee 是别人 → 只读,创建者是我也不算', () => { expect(isIssueMine({ poster: 'cruldra', assignees: ['chehongwei'] }, 'cruldra')).toBe(false) }) it('无 assignee 时按创建者判定', () => { expect(isIssueMine({ poster: 'cruldra' }, 'cruldra')).toBe(true) expect(isIssueMine({ poster: 'chehongwei' }, 'cruldra')).toBe(false) }) it('身份未知 → 一律可写,不锁死自己的板', () => { expect(isIssueMine({ poster: 'chehongwei', assignees: ['chehongwei'] }, undefined)).toBe(true) }) it('非 Gitea 来源(无 poster 无 assignee)→ 可写', () => { expect(isIssueMine({}, 'cruldra')).toBe(true) }) }) describe('issueOwnerLogin', () => { it('assignee 优先于创建者', () => { expect(issueOwnerLogin({ poster: 'cruldra', assignees: ['chehongwei'] })).toBe('chehongwei') }) it('无 assignee 时回退创建者', () => { expect(issueOwnerLogin({ poster: 'cruldra' })).toBe('cruldra') }) it('都没有 → undefined', () => { expect(issueOwnerLogin({})).toBeUndefined() }) })