Tasks 10-12 of the WP-A plan in one commit (the route modules import each other): - header extras portalled into the Phase 0 header: course switcher, search, Reading/Work, account - course frame with outline sidebar (mobile overlay, Escape closes), progress, gating locks - library: featured course, continue row, New and collection rows, course list, filters, search - LessonView: text (track switcher, folds, ordered hint tiers), video (resume, done near the end, timestamp notes, transcript), companion decks rendered with pdf.js (thumbs, arrows, fullscreen, per-slide notes), code files (tree, tabs, copy, zip, command), exercises (Web Worker runner or local command with optional pasted evidence), floating action bar - notes list, account (email/password, providers, SSO by email) and owner admin pages - pdf.js worker served from /api/learner/pdf.worker.mjs - browser entry @stc/feature-learner/web (the package index also carries the server half) Co-Authored-By: Claude Opus 5.5 <[email protected]>
12 lines
455 B
TypeScript
12 lines
455 B
TypeScript
import { expect } from "bun:test";
|
|
import { forEachDb } from "./helpers";
|
|
import { makeApp } from "./app";
|
|
|
|
forEachDb("the pdf.js worker is served for client-side deck rendering", async (db) => {
|
|
const { call } = await makeApp(db);
|
|
const r = await call("GET", "/api/learner/pdf.worker.mjs");
|
|
expect(r.status).toBe(200);
|
|
expect(r.headers.get("content-type")).toContain("javascript");
|
|
expect((await r.text()).length).toBeGreaterThan(100_000);
|
|
});
|