fix(list/map): report-card schools badged as Report Card, not their old grade #63

Merged
tudor merged 2 commits from fix/list-map-report-card-signal into main 2026-07-18 20:28:20 +00:00
2 changed files with 14 additions and 4 deletions
Showing only changes of commit b2b2cad5ac - Show all commits
+9 -2
View File
@@ -86,12 +86,19 @@ test('a report-card school shows a Report Card badge in search results, not its
// labelled by their old grade (e.g. "Outstanding · 2021"). The list now
// carries ofsted_rc_date and the badge treats a report card as winning.
const RC_URN = 138690; // Barclay Primary — has a Nov-2025+ report card
const res = await page.request.get(`/api/schools?search=Barclay%20Primary&per_page=5`);
const res = await page.request.get(`/api/schools?search=Barclay%20Primary&page_size=5`);
expect(res.ok()).toBeTruthy();
const barclay = ((await res.json()).schools ?? []).find(
(s: { urn: number }) => s.urn === RC_URN,
);
test.skip(!barclay?.ofsted_rc_date, 'precondition: the list must expose ofsted_rc_date for a report-card school');
// Hard assertions, not test.skip: if the backend stops exposing
// ofsted_rc_date for this report-card school, that IS the regression this
// test exists to catch, so it must fail loudly rather than skip.
expect(barclay, 'Barclay must appear in the search results').toBeTruthy();
expect(
barclay.ofsted_rc_date,
'the list must expose ofsted_rc_date for a report-card school',
).toBeTruthy();
await searchByName(page, 'Barclay Primary');
// The Barclay row must be present…
+5 -2
View File
@@ -691,9 +691,12 @@ export interface OfstedListBadge {
/**
* Build the Ofsted badge for a school card in the list/map view.
* Three states:
* States, in priority order:
* - Report Card school (ofsted_rc_date set): "Report Card · YYYY" in purple.
* Checked FIRST so it wins over any carried-forward legacy grade — the
* list has no full report_card object, and ofsted_framework is the raw
* event grouping ("Schools - S5"), never "ReportCard".
* - OEIF school (ofsted_grade set): grade word + year, colour-keyed
* - ReportCard school (ofsted_framework === 'ReportCard'): "Report Card · YYYY" in purple
* - Inspected without an overall grade (OEIF post-Sept-2024, where Ofsted no
* longer issues an overall judgement): "Inspected · YYYY" — mirrors the
* detail page's hero chip so a school never reads as both inspected and