import { gradeSourceLine, latestVisitLine, showLatestVisitLine } from '@/lib/ofstedStatus'; import type { OfstedInspection } from '@/lib/types'; const base = { report_card: {} } as unknown as OfstedInspection; describe('gradeSourceLine', () => { it('names the graded inspection and its date', () => { expect(gradeSourceLine({ grade: 2, date: '2016-07-06', basis: 'graded' })) .toBe('Graded inspection, 6 July 2016'); }); it('names the ungraded visit that confirmed it', () => { expect(gradeSourceLine({ grade: 2, date: '2023-03-14', basis: 'confirmed' })) .toBe('Confirmed at an ungraded inspection, 14 March 2023'); }); }); describe('latestVisitLine', () => { it('prints the ungraded outcome', () => { expect(latestVisitLine({ date: '2024-11-13', kind: 'ungraded', outcome: 'Standards maintained' })) .toBe('Ungraded inspection, 13 November 2024: Standards maintained'); }); it('prints a graded visit without an outcome', () => { expect(latestVisitLine({ date: '2025-06-17', kind: 'graded', outcome: null })) .toBe('Graded inspection, 17 June 2025'); }); }); describe('showLatestVisitLine', () => { it('shows a later visit than the one the grade came from', () => { expect(showLatestVisitLine({ ...base, current_grade: { grade: 2, date: '2020-03-03', basis: 'graded' }, latest_visit: { date: '2025-05-21', kind: 'ungraded', outcome: 'Standards maintained' } })).toBe(true); }); it('hides it when the visit is the grade’s own source', () => { expect(showLatestVisitLine({ ...base, current_grade: { grade: 2, date: '2024-07-18', basis: 'confirmed' }, latest_visit: { date: '2024-07-18', kind: 'ungraded', outcome: 'School remains Good' } })).toBe(false); }); it('shows an ungraded outcome when there is no grade', () => { expect(showLatestVisitLine({ ...base, current_grade: null, latest_visit: { date: '2024-11-13', kind: 'ungraded', outcome: 'Standards maintained' } })).toBe(true); }); it('hides it for a graded visit with no grade (the title already dates it)', () => { expect(showLatestVisitLine({ ...base, current_grade: null, latest_visit: { date: '2025-06-17', kind: 'graded', outcome: null } })).toBe(false); }); });