29 lines
952 B
TypeScript
29 lines
952 B
TypeScript
import { runPipelineRouterConformance } from "@suaveplan/api-router/testing/pipeline-router-conformance";
|
|
|
|
import { InMemoryRouter } from "../../src/adapter/adapter.js";
|
|
|
|
/**
|
|
* Wire the canonical `PipelineRouter` conformance suite from
|
|
* `@suaveplan/api-router` to the `InMemoryRouter` pipeline facet.
|
|
*/
|
|
runPipelineRouterConformance({
|
|
label: "InMemoryRouter pipeline facet",
|
|
build: () => {
|
|
let r = new InMemoryRouter();
|
|
const replay: Array<Parameters<typeof r.registerPipelineRoute>[0]> = [];
|
|
return {
|
|
router: {
|
|
match: (method, url) => r.matchPipeline(method, url),
|
|
},
|
|
register: (reg) => {
|
|
r.registerPipelineRoute(reg);
|
|
replay.push(reg);
|
|
},
|
|
reload: () => {
|
|
r = new InMemoryRouter();
|
|
for (const reg of replay) r.registerPipelineRoute(reg);
|
|
},
|
|
};
|
|
},
|
|
});
|