diff --git a/lib/handler.test.ts b/lib/handler.test.ts index f3694cb..d42df3d 100644 --- a/lib/handler.test.ts +++ b/lib/handler.test.ts @@ -8,6 +8,15 @@ import expectedJson from "./test/lastoriaingiallo.parsed.json" with { }; import { parseFeed } from "./test/parse-feed.js"; +test("handler", async (t) => { + await t.test(indexSucccess); + await t.test(rssFeedSuccess); + await t.test(rssFeedFail404); + await t.test(rssFeedFail500); + await t.test(rssFeedFailCorrupt); + await t.test(notFound); +}); + const baseUrl = new URL("https://test.dev/"); const raiBaseUrl = new URL("https://rai.dev/"); @@ -19,7 +28,7 @@ const fetchHandler = mkFetchHandler({ logger: logger.disabled, }); -test("index", async () => { +async function indexSucccess() { const req = new Request("arbitrary://arbitrary/"); const resp = await fetchHandler(req); @@ -27,45 +36,48 @@ test("index", async () => { assert.strictEqual(resp.headers.get("Content-Language"), "it"); const _text = await resp.text(); // TODO: check validity of HTML -}); +} -test("rss feed success", async () => { - const req = new Request("https://test.dev/programmi/lastoriaingiallo.xml"); +async function rssFeedSuccess() { + const req = new Request( + "arbitrary://arbitrary/programmi/lastoriaingiallo.xml", + ); const resp = await fetchHandler(req); assert.strictEqual(resp.status, 200); const feed = await resp.text(); const parsedFeed = parseFeed(feed); assert.deepStrictEqual(parsedFeed, expectedJson); -}); +} -test("rss feed failure: 404 from RAI server", async () => { - const req = new Request("https://test.dev/programmi/nonexistent.xml"); +async function rssFeedFail404() { + const req = new Request("arbitrary://arbitrary/programmi/nonexistent.xml"); const resp = await fetchHandler(req); + assert.strictEqual(resp.status, 404); - assert.strictEqual(resp.headers.get("Content-Type"), "application/xml"); const text = await resp.text(); assert.strictEqual( text, "404Not Found", ); -}); +} -test("rss feed failure: 500 from RAI server", async () => { - const req = new Request("https://test.dev/programmi/500.xml"); +async function rssFeedFail500() { + const req = new Request("arbitrary://arbitrary/programmi/500.xml"); const resp = await fetchHandler(req); + assert.strictEqual(resp.status, 500); - assert.strictEqual(resp.headers.get("Content-Type"), "application/xml"); const text = await resp.text(); assert.strictEqual( text, "500server error", ); -}); +} -test("rss feed failure: failure to process RAI json feed", async () => { - const req = new Request("https://test.dev/programmi/corrupt.xml"); +async function rssFeedFailCorrupt() { + const req = new Request("arbitrary://arbitrary/programmi/corrupt.xml"); const resp = await fetchHandler(req); + assert.strictEqual(resp.status, 500); assert.strictEqual(resp.headers.get("Content-Type"), "application/xml"); const text = await resp.text(); @@ -73,13 +85,13 @@ test("rss feed failure: failure to process RAI json feed", async () => { text, "500server error", ); -}); +} -test("404", async () => { - const req = new Request("https://test.dev/nonexistent"); +async function notFound() { + const req = new Request("arbitrary://arbitrary/nonexistent"); const resp = await fetchHandler(req); assert.strictEqual(resp.status, 404); const text = await resp.text(); assert.strictEqual(text, "Not found."); -}); +}