47 lines
2.2 KiB
TypeScript
47 lines
2.2 KiB
TypeScript
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);
|
|||
|
|
});
|
|||
|
|
});
|