fix(schema): enforce 4-digit ids
This commit is contained in:
parent
c00ec16c84
commit
2b5696de82
@ -8,7 +8,7 @@ export const Role = z.enum(['architect', 'implementer', 'reviewer', 'tester']);
|
|||||||
export const DelegationMode = z.enum(['manual', 'suggest', 'auto']);
|
export const DelegationMode = z.enum(['manual', 'suggest', 'auto']);
|
||||||
|
|
||||||
export const TaskSchema = z.object({
|
export const TaskSchema = z.object({
|
||||||
id: z.string().regex(/^TSK-\d+$/),
|
id: z.string().regex(/^TSK-\d{4}$/),
|
||||||
title: z.string().min(1),
|
title: z.string().min(1),
|
||||||
description: z.string().default(''),
|
description: z.string().default(''),
|
||||||
status: TaskStatus,
|
status: TaskStatus,
|
||||||
@ -24,7 +24,7 @@ export const TaskSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const HandoffSchema = z.object({
|
export const HandoffSchema = z.object({
|
||||||
id: z.string().regex(/^HOF-\d+$/),
|
id: z.string().regex(/^HOF-\d{4}$/),
|
||||||
fromRole: z.string().min(1),
|
fromRole: z.string().min(1),
|
||||||
toRole: z.string().min(1),
|
toRole: z.string().min(1),
|
||||||
fromAgent: z.string().optional(),
|
fromAgent: z.string().optional(),
|
||||||
@ -39,7 +39,7 @@ export const HandoffSchema = z.object({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const DecisionSchema = z.object({
|
export const DecisionSchema = z.object({
|
||||||
id: z.string().regex(/^DEC-\d+$/),
|
id: z.string().regex(/^DEC-\d{4}$/),
|
||||||
title: z.string().min(1),
|
title: z.string().min(1),
|
||||||
status: DecisionStatus.default('accepted'),
|
status: DecisionStatus.default('accepted'),
|
||||||
context: z.string().default(''),
|
context: z.string().default(''),
|
||||||
|
|||||||
@ -25,4 +25,16 @@ describe('schemas', () => {
|
|||||||
});
|
});
|
||||||
expect(result.success).toBe(false);
|
expect(result.success).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('rejects a task id without exactly 4 digits', () => {
|
||||||
|
const result = TaskSchema.safeParse({
|
||||||
|
id: 'TSK-1',
|
||||||
|
title: 'Implement DNS cache',
|
||||||
|
description: '',
|
||||||
|
status: 'open',
|
||||||
|
createdAt: '2026-06-24T10:00:00Z',
|
||||||
|
updatedAt: '2026-06-24T10:00:00Z',
|
||||||
|
});
|
||||||
|
expect(result.success).toBe(false);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user