- CapaOwnerActions: add 'overdue' to open/reopened branch so DB-overdue CAPAs show 'Mark In Progress' button (cron transitions open→overdue) - capa-owner page: compute overdue at runtime (dueDate < today) so stats and red highlight are correct even before cron runs - openCount now excludes overdue items to avoid double-counting - Add CapaOwnerActions test suite covering all status transitions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HEYxFQiCyxJvnBCoZeYzB9
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
|
import { render, screen } from '@testing-library/react'
|
|
import { CapaOwnerActions } from '@/components/capa/capa-owner-actions'
|
|
|
|
// Mock Next.js router
|
|
vi.mock('next/navigation', () => ({
|
|
useRouter: () => ({ refresh: vi.fn() }),
|
|
}))
|
|
|
|
describe('CapaOwnerActions', () => {
|
|
it('shows Mark In Progress for open status', () => {
|
|
render(<CapaOwnerActions capaId="abc" currentStatus="open" />)
|
|
expect(screen.getByText('Mark In Progress')).toBeTruthy()
|
|
})
|
|
|
|
it('shows Mark In Progress for reopened status', () => {
|
|
render(<CapaOwnerActions capaId="abc" currentStatus="reopened" />)
|
|
expect(screen.getByText('Mark In Progress')).toBeTruthy()
|
|
})
|
|
|
|
it('shows Mark In Progress for overdue status', () => {
|
|
render(<CapaOwnerActions capaId="abc" currentStatus="overdue" />)
|
|
expect(screen.getByText('Mark In Progress')).toBeTruthy()
|
|
})
|
|
|
|
it('shows Submit for Verification for in_progress status', () => {
|
|
render(<CapaOwnerActions capaId="abc" currentStatus="in_progress" />)
|
|
expect(screen.getByText('Submit for Verification')).toBeTruthy()
|
|
})
|
|
|
|
it('renders nothing for pending_verification status', () => {
|
|
const { container } = render(<CapaOwnerActions capaId="abc" currentStatus="pending_verification" />)
|
|
expect(container.firstChild).toBeNull()
|
|
})
|
|
|
|
it('renders nothing for verified status', () => {
|
|
const { container } = render(<CapaOwnerActions capaId="abc" currentStatus="verified" />)
|
|
expect(container.firstChild).toBeNull()
|
|
})
|
|
})
|