36 lines
1.2 KiB
TypeScript
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')
|
|
})
|
|
})
|