← Files BranchaARCHIVED FILE
skills/brancha/app/src/server/http/router.test.ts
943 Bytes · Oct 4, 2026 · 12:29 UTC
import assert from 'node:assert/strict';
import test from 'node:test';
import type { IncomingMessage, ServerResponse } from 'node:http';
import { Router } from './router.js';
test('matches named path parameters without route regex', async () => {
const router = new Router();
let nodeId = '';
router.put('/api/nodes/:nodeId/content', ({ params }) => {
nodeId = params.nodeId;
});
const handled = await router.handle(
{ method: 'PUT' } as IncomingMessage,
{} as ServerResponse,
'/api/nodes/abc123/content',
);
assert.equal(handled, true);
assert.equal(nodeId, 'abc123');
});
test('does not match a different path shape', async () => {
const router = new Router();
router.get('/api/projects/:projectId/tree', () => undefined);
const handled = await router.handle(
{ method: 'GET' } as IncomingMessage,
{} as ServerResponse,
'/api/projects/abc123',
);
assert.equal(handled, false);
});
SHA-256: 7cc6ec4bc4f314b8f3e9a66e680c0d5f4aac170674b17eaddcd5497f58bb8b48