gongxiangp2/lib/__tests__/work-review-policy.test.ts

36 lines
1.2 KiB
TypeScript

/** @jest-environment node */
import {
deriveCompletedWorkReviewStatus,
deriveWorkReviewDecision,
} from '@/lib/work-review-policy'
describe('work review policy', () => {
test('marks one reviewer region as revision required when any image needs changes', () => {
expect(deriveWorkReviewDecision([
{ decision: 'approved' },
{ decision: 'revision_required' },
])).toBe('revision_required')
})
test('does not complete the version until both independent reviewer regions exist', () => {
expect(deriveCompletedWorkReviewStatus([
{ reviewerRole: 'manager', decision: 'approved' },
])).toBeNull()
expect(deriveCompletedWorkReviewStatus([
{ reviewerRole: 'final_reviewer', decision: 'approved' },
])).toBeNull()
})
test('requires both reviewer regions to approve the final version', () => {
expect(deriveCompletedWorkReviewStatus([
{ reviewerRole: 'manager', decision: 'approved' },
{ reviewerRole: 'final_reviewer', decision: 'approved' },
])).toBe('approved')
expect(deriveCompletedWorkReviewStatus([
{ reviewerRole: 'manager', decision: 'revision_required' },
{ reviewerRole: 'final_reviewer', decision: 'approved' },
])).toBe('revision_required')
})
})