fix(list/map): report-card schools badged as Report Card, not their old grade #63
@@ -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…
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user