Search badges date a grade by the inspection that awarded or confirmed it (ofsted_grade_date) and say 'Inspected · year' when the latest inspection gave no grade. ofstedDisplay's kinds become graded / confirmed / no_overall_grade, read from current_grade rather than a carried-forward overall_effectiveness. lib/ofstedStatus.ts holds the two sentences the school and compare pages share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
48 lines
2.2 KiB
TypeScript
48 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);
|
||
});
|
||
});
|