Merge pull request 'fix(school): send the school page its admissions policy, and read it exactly' (#179) from fix/school-page-selective-flag into main
Stage (build -> staging -> E2E gate) / prepare (push) Successful in 1s
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 21s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 1m24s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 30s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 3m22s
Stage (build -> staging -> E2E gate) / prepare (push) Successful in 1s
Stage (build -> staging -> E2E gate) / Build Backend (FastAPI) (push) Successful in 21s
Stage (build -> staging -> E2E gate) / Build Frontend (Next.js) (push) Successful in 1m24s
Stage (build -> staging -> E2E gate) / Build Pipeline (Meltano + dbt + Airflow) (push) Successful in 13s
Stage (build -> staging -> E2E gate) / Deploy to Staging (push) Successful in 30s
Stage (build -> staging -> E2E gate) / E2E Journeys against Staging (push) Successful in 3m22s
Reviewed-on: #179
This commit was merged in pull request #179.
This commit is contained in:
commit
423b27140c
10 files changed
+172
-13
No files matched your search
@@ -3419,3 +3419,31 @@ test('a selective school is flagged Selective, on its page and in search', async
|
||||
const tags = await rowTags(page, school);
|
||||
await expect(tags.getByText('Selective', { exact: true })).toBeVisible();
|
||||
});
|
||||
|
||||
/*
|
||||
* The Admissions section repeated the search rows' old tag logic: "selective"
|
||||
* matched inside "Non-selective", and "None" counted as a faith, so Burntwood
|
||||
* read "this school has a faith-based admissions priority (None)". The
|
||||
* Selective half stayed hidden only because the school page's API did not
|
||||
* send admissions_policy. Data-invariant: the school comes from the API, and
|
||||
* must have an Admissions section to read.
|
||||
*/
|
||||
test('a non-selective school with no faith makes neither claim in its Admissions section', async ({ page }) => {
|
||||
const res = await page.request.get(
|
||||
'/api/schools?search=school&phase=secondary&faith=none&admissions_policy=non-selective&page_size=20');
|
||||
expect(res.ok()).toBeTruthy();
|
||||
let urn: number | null = null;
|
||||
for (const s of ((await res.json()).schools ?? []).slice(0, 8)) {
|
||||
if (s.religious_denomination !== 'None') continue;
|
||||
const detail = await (await page.request.get(`/api/schools/${s.urn}`)).json();
|
||||
if (detail.admissions) { urn = s.urn; break; }
|
||||
}
|
||||
test.skip(urn == null, 'no non-selective, no-faith secondary with admissions data here');
|
||||
|
||||
await page.goto(`/school/${urn}`);
|
||||
const admissions = page.locator('section#admissions');
|
||||
await expect(admissions).toBeVisible({ timeout: 15_000 });
|
||||
await expect(admissions.getByText('Selective:', { exact: true })).toHaveCount(0);
|
||||
await expect(admissions.getByText('Faith priority:', { exact: true })).toHaveCount(0);
|
||||
await expect(admissions.getByText(/\(None\)/)).toHaveCount(0);
|
||||
});
|
||||
Reference in new issue
Block a user