fix(ofsted): badge and compare read the grade still in force
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>
This commit is contained in:
1 parent
a9e3a6a700
commit
a42c586cc8
7 files changed
+179
-52
No files matched your search
@@ -0,0 +1,47 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user