55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { describe, expect, it, vi } from 'vitest';
|
|
|
|
import { TeamTaskAgendaSource } from '@features/member-work-sync/main/adapters/output/TeamTaskAgendaSource';
|
|
|
|
describe('TeamTaskAgendaSource', () => {
|
|
it('applies kanban approved overlay before building member work agenda', async () => {
|
|
const source = new TeamTaskAgendaSource({
|
|
configReader: {
|
|
getConfig: vi.fn(async () => ({
|
|
members: [{ name: 'jack', agentType: 'developer' }],
|
|
})),
|
|
},
|
|
taskReader: {
|
|
getTasks: vi.fn(async () => [
|
|
{
|
|
id: 'task-approved',
|
|
displayId: '#6d4db591',
|
|
subject: 'Approved through kanban',
|
|
status: 'in_progress',
|
|
owner: 'jack',
|
|
reviewState: 'none',
|
|
},
|
|
]),
|
|
},
|
|
kanbanManager: {
|
|
getState: vi.fn(async () => ({
|
|
teamName: 'forge-labs',
|
|
reviewers: [],
|
|
tasks: {
|
|
'task-approved': {
|
|
column: 'approved',
|
|
movedAt: '2026-05-06T19:06:07.257Z',
|
|
},
|
|
},
|
|
})),
|
|
},
|
|
membersMetaStore: {
|
|
getMembers: vi.fn(async () => []),
|
|
},
|
|
hash: {
|
|
sha256Hex: vi.fn((value: string) => `h${value.length}`),
|
|
},
|
|
clock: {
|
|
now: () => new Date('2026-05-06T19:06:07.257Z'),
|
|
},
|
|
} as never);
|
|
|
|
const result = await source.loadAgenda({
|
|
teamName: 'forge-labs',
|
|
memberName: 'jack',
|
|
});
|
|
|
|
expect(result.agenda.items).toEqual([]);
|
|
});
|
|
});
|