Skip to main content
Module

x/composium/route_test.ts

Powered by functional composition and the URL Pattern API, composium has become the most flexible routing framework in the world.
Go to Latest
File
import { Context, createRoute } from "./mod.ts";import { add10Middleware, connInfo, divide5DelayedMiddleware, tryMiddleware,} from "./test_util.ts";import { assertEquals } from "./test_deps.ts";
type State = { result: number };
const request = new Request("https:example.com/books");
class Ctx extends Context<State> {}
Deno.test("createRoute", async function () { assertEquals( (await createRoute("ALL")({ pathname: "/books" })(add10Middleware)( new Ctx(request, connInfo, { result: 10 }), )).state.result, 20, ); assertEquals( (await createRoute("GET")({ pathname: "/books" })( add10Middleware, divide5DelayedMiddleware, )( new Ctx(request, connInfo, { result: 10 }), )).state.result, 12, ); assertEquals( (await createRoute("POST", "GET")({ pathname: "/books" })(tryMiddleware)( new Ctx( request, connInfo, { result: 10 }, ), )).state.result, 28, ); assertEquals( (await createRoute("POST", "DELETE")({ pathname: "/books" })( tryMiddleware, )( new Ctx( request, connInfo, { result: 10 }, ), )).state.result, 10, ); assertEquals( (await createRoute("GET")({ pathname: "/ups" })(tryMiddleware)( new Ctx( request, connInfo, { result: 10 }, ), )).state.result, 10, );});