Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
acec8135e1 | ||
|
|
0a370e3b63 | ||
|
|
6c872ce726 |
+4
-1
@@ -834,7 +834,10 @@ async def get_rankings(
|
|||||||
request: Request,
|
request: Request,
|
||||||
metric: str = Query("rwm_expected_pct", description="Metric to rank by", max_length=50),
|
metric: str = Query("rwm_expected_pct", description="Metric to rank by", max_length=50),
|
||||||
year: Optional[int] = Query(
|
year: Optional[int] = Query(
|
||||||
None, description="Specific year (defaults to most recent)", ge=2000, le=2100
|
None,
|
||||||
|
description="Academic year code, e.g. 201819 (defaults to most recent)",
|
||||||
|
ge=2000,
|
||||||
|
le=210100,
|
||||||
),
|
),
|
||||||
limit: int = Query(20, ge=1, le=100, description="Number of schools to return"),
|
limit: int = Query(20, ge=1, le=100, description="Number of schools to return"),
|
||||||
local_authority: Optional[str] = Query(
|
local_authority: Optional[str] = Query(
|
||||||
|
|||||||
@@ -73,3 +73,24 @@ test('rankings page loads a populated table', async ({ page }) => {
|
|||||||
await expect(rows.first()).toBeVisible({ timeout: 15_000 });
|
await expect(rows.first()).toBeVisible({ timeout: 15_000 });
|
||||||
expect(await rows.count()).toBeGreaterThan(5);
|
expect(await rows.count()).toBeGreaterThan(5);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('rankings stay populated after picking a specific year', async ({ page }) => {
|
||||||
|
// Years are academic-year codes (e.g. 201819); the API must accept them
|
||||||
|
// as the `year` query param rather than rejecting with a 422.
|
||||||
|
await page.goto('/rankings');
|
||||||
|
const yearSelect = page.locator('#year-select');
|
||||||
|
await expect(yearSelect).toBeVisible({ timeout: 15_000 });
|
||||||
|
|
||||||
|
// Pick the last option — the most recent explicit year. The default view
|
||||||
|
// already proved this year has rows, so an empty table after selecting it
|
||||||
|
// can only mean the year param was rejected. (The oldest year is no good
|
||||||
|
// here: staging doesn't always carry the full data history.)
|
||||||
|
const yearValue = await yearSelect.locator('option').last().getAttribute('value');
|
||||||
|
expect(yearValue).toBeTruthy();
|
||||||
|
await yearSelect.selectOption(yearValue!);
|
||||||
|
await page.waitForURL(/year=/);
|
||||||
|
|
||||||
|
const rows = page.locator('table tbody tr');
|
||||||
|
await expect(rows.first()).toBeVisible({ timeout: 15_000 });
|
||||||
|
expect(await rows.count()).toBeGreaterThan(5);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user