fix(compare): expert sign-off must-fixes — phase-matched admissions, Ofsted sentinel codes, selective-school copy
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m4s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 17s
PR Checks / Build Frontend (no push) (pull_request) Successful in 46s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 2m53s
PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m4s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 17s
PR Checks / Build Frontend (no push) (pull_request) Successful in 46s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 10s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 2m53s
M1: admissions rounds are now selected by the active phase tab (admissionsForPhase) — an all-through school's Year 7 round no longer masquerades as Reception odds beside pure primaries; honest per-cell and section fallbacks name the round (Reception / Year 7). M2: Ofsted sentinel codes (9 = not applicable) never render as judgement chips, and the sixth-form judgement — previously dropped — now renders for schools that have one. M3: 'What this means' is phase- and type-aware: selective schools get entrance-test framing, secondary faith schools a faith-criteria note, and the primaries' distance template never appears on the secondary tab (admissions_policy now exposed in compare school_info). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0146VHeLAWjDVE2B5uU67jCB
This commit is contained in:
@@ -96,6 +96,31 @@ describe('CompareOfsted', () => {
|
||||
expect(links[0]).toHaveAttribute('href', 'https://reports.ofsted.gov.uk/provider/21/1');
|
||||
});
|
||||
|
||||
it('never renders Ofsted sentinel codes (9 = not applicable) as judgement chips', () => {
|
||||
const sentinelSchool = school(6, 'Sentinel School');
|
||||
const sentinelData: Record<string, ComparisonData> = {
|
||||
'6': {
|
||||
school_info: sentinelSchool,
|
||||
yearly_data: [],
|
||||
ofsted: ofsted({
|
||||
overall_effectiveness: 2,
|
||||
grade_source: 'graded',
|
||||
quality_of_education: 1,
|
||||
early_years_provision: 9,
|
||||
sixth_form_provision: 2,
|
||||
}),
|
||||
},
|
||||
};
|
||||
render(<CompareOfsted schools={[sentinelSchool]} data={sentinelData} />);
|
||||
// Real grades render…
|
||||
expect(screen.getByText('Quality of education')).toBeInTheDocument();
|
||||
// …the applicable sixth-form judgement renders (was previously dropped)…
|
||||
expect(screen.getByText('Sixth form provision')).toBeInTheDocument();
|
||||
// …and the not-applicable sentinel never appears, neither as area nor code.
|
||||
expect(screen.queryByText('Early years provision')).toBeNull();
|
||||
expect(screen.queryByText('9')).toBeNull();
|
||||
});
|
||||
|
||||
it('dates a report card with the report-card inspection date, never the legacy date', () => {
|
||||
const cardSchool = school(4, 'Dated Card School');
|
||||
const cardData: Record<string, ComparisonData> = {
|
||||
|
||||
Reference in New Issue
Block a user