aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/pages/StudyPage.test.tsx
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-12-08 00:18:03 +0900
committernsfisis <nsfisis@gmail.com>2025-12-08 00:18:03 +0900
commit65c0adfd769b9ef11b897c96a3634c61120055b8 (patch)
tree74668feef8f134c1b132beaab125e42fa9d77b2e /src/client/pages/StudyPage.test.tsx
parent7cf55a3b7e37971ea0835118a26f032d895ff71f (diff)
downloadkioku-65c0adfd769b9ef11b897c96a3634c61120055b8.tar.gz
kioku-65c0adfd769b9ef11b897c96a3634c61120055b8.tar.zst
kioku-65c0adfd769b9ef11b897c96a3634c61120055b8.zip
feat(client): redesign frontend with TailwindCSS v4
Replace inline styles with TailwindCSS, implementing a cohesive Japanese-inspired design system with custom colors (cream, teal primary), typography (Fraunces, DM Sans), and animations. Update all pages and components with consistent styling, improve accessibility by adding aria-hidden to decorative SVGs, and configure Biome for Tailwind CSS syntax support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/client/pages/StudyPage.test.tsx')
-rw-r--r--src/client/pages/StudyPage.test.tsx13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/client/pages/StudyPage.test.tsx b/src/client/pages/StudyPage.test.tsx
index bab9193..146322a 100644
--- a/src/client/pages/StudyPage.test.tsx
+++ b/src/client/pages/StudyPage.test.tsx
@@ -129,7 +129,8 @@ describe("StudyPage", () => {
renderWithProviders();
- expect(screen.getByText("Loading study session...")).toBeDefined();
+ // Loading state shows spinner (svg with animate-spin class)
+ expect(document.querySelector(".animate-spin")).toBeDefined();
});
it("renders deck name and back link", async () => {
@@ -147,7 +148,7 @@ describe("StudyPage", () => {
await waitFor(() => {
expect(
- screen.getByRole("heading", { name: /Study: Japanese Vocabulary/ }),
+ screen.getByRole("heading", { name: /Japanese Vocabulary/ }),
).toBeDefined();
});
@@ -229,7 +230,7 @@ describe("StudyPage", () => {
await waitFor(() => {
expect(
- screen.getByRole("heading", { name: /Study: Japanese Vocabulary/ }),
+ screen.getByRole("heading", { name: /Japanese Vocabulary/ }),
).toBeDefined();
});
});
@@ -252,9 +253,9 @@ describe("StudyPage", () => {
await waitFor(() => {
expect(screen.getByTestId("no-cards")).toBeDefined();
});
- expect(screen.getByText("No cards to study")).toBeDefined();
+ expect(screen.getByText("All caught up!")).toBeDefined();
expect(
- screen.getByText("There are no due cards in this deck right now."),
+ screen.getByText("No cards due for review right now"),
).toBeDefined();
});
});
@@ -633,7 +634,7 @@ describe("StudyPage", () => {
expect(screen.getByTestId("session-complete")).toBeDefined();
});
- expect(screen.getByText("Back to Deck")).toBeDefined();
+ expect(screen.getAllByText("Back to Deck").length).toBeGreaterThan(0);
expect(screen.getByText("All Decks")).toBeDefined();
});
});