diff --git a/devtools/decky-mock/e2e/deckyhub.spec.ts b/devtools/decky-mock/e2e/deckyhub.spec.ts index fb090f7..f3d6311 100644 --- a/devtools/decky-mock/e2e/deckyhub.spec.ts +++ b/devtools/decky-mock/e2e/deckyhub.spec.ts @@ -533,6 +533,22 @@ test("Discover filters by category", async ({ page }) => { await expect(app.getByRole("heading", { name: "MAKO Decky" })).toBeVisible(); }); +test("Discover sorts A to Z, Z to A and by most recently added", async ({ page }) => { + const app = mock(page); + await app.getByRole("button", { name: "/deckyhub/discover" }).click(); + // MAKO Decky is the registry's first entry, Unifideck its third. + const order = async () => { + const names = await app.getByRole("heading").allTextContents(); + return names.indexOf("MAKO Decky") - names.indexOf("Unifideck"); + }; + + await expect.poll(order).toBeLessThan(0); + await app.getByLabel("Sort").selectOption("added"); + await expect.poll(order).toBeGreaterThan(0); + await app.getByLabel("Sort").selectOption("za"); + await expect.poll(order).toBeGreaterThan(0); +}); + test("A GitHub rate limit surfaces a friendly message instead of a raw status code", async ({ page }) => { const resetInTwoMinutes = Math.floor(Date.now() / 1000) + 120; await page.route("https://api.github.com/repos/eugeniosegala/MAKO/releases?per_page=20", (route) => diff --git a/devtools/decky-mock/ui.tsx b/devtools/decky-mock/ui.tsx index 9c561f4..901cb42 100644 --- a/devtools/decky-mock/ui.tsx +++ b/devtools/decky-mock/ui.tsx @@ -140,7 +140,9 @@ export function TextField({ onChange, bIsPassword, bShowClearAction, + "aria-label": ariaLabel, }: { + "aria-label"?: string; label?: string; value?: string; onChange?: (event: React.ChangeEvent) => void; @@ -150,7 +152,7 @@ export function TextField({ return (