Skip to main content
Module

x/aleph/tests/integration_api_app_test.ts

The Full-stack Framework in Deno.
Very Popular
Go to Latest
File
import { assertEquals } from "std/testing/asserts.ts";import { mockFormData, MockServer } from "aleph/server/mock.ts";
Deno.test("[integration] examples/api-app", async (t) => { const api = new MockServer({ appDir: "./examples/api-app", router: { glob: "./routes/**/*.ts", }, origin: "https://api.example.com", });
await t.step("API GET /", async () => { const res = await api.fetch("/"); assertEquals(res.status, 200); assertEquals((await res.json()).users_url, "https://api.example.com/users"); });
await t.step("API GET /users", async () => { const res = await api.fetch("/users"); assertEquals(res.status, 200); assertEquals((await res.json()).length, 4); });
await t.step("API POST /users", async () => { const res = await api.fetch("/users", { method: "POST", body: mockFormData({ "name": "saul" }) }); const ret = await res.json(); assertEquals(res.status, 200); assertEquals(ret.uid, 5); assertEquals(ret.name, "saul");
const res2 = await api.fetch("/users"); const ret2 = await res2.json(); assertEquals(res2.status, 200); assertEquals(ret2.length, 5); assertEquals(ret2.at(-1).uid, 5); assertEquals(ret2.at(-1).name, "saul"); });
await t.step("API PATCH /users/5", async () => { const res = await api.fetch("/users/5", { method: "PATCH", body: mockFormData({ "name": "saul goodman" }) }); const ret = await res.json(); assertEquals(res.status, 200); assertEquals(ret.uid, 5); assertEquals(ret.name, "saul goodman"); });
await t.step("API GET /users/5", async () => { const res = await api.fetch("/users/5"); const ret = await res.json(); assertEquals(res.status, 200); assertEquals(ret.uid, 5); assertEquals(ret.name, "saul goodman"); });
await t.step("API DELETE /users/5", async () => { const res = await api.fetch("/users/5", { method: "DELETE" }); const ret = await res.json(); assertEquals(res.status, 200); assertEquals(ret.uid, 5); assertEquals(ret.name, "saul goodman"); });
await t.step("API GET /users/5", async () => { const res = await api.fetch("/users/5"); assertEquals(res.status, 404); });});