- Replace standard imports with type-only imports to improve clarity and align with TypeScript best practices. - Ensure consistency across modules by modifying all relevant files.
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { assertEquals } from 'https://deno.land/std@0.204.0/assert/mod.ts';
|
|
import {
|
|
type IRouteDefinition,
|
|
isDynamicRouteDefinition,
|
|
isStaticRouteDefinition,
|
|
} from '../IRouteDefinition.ts';
|
|
|
|
Deno.test('isStaticRouteDefinition returns true for static route', () => {
|
|
const staticDef: IRouteDefinition = {
|
|
method: 'GET',
|
|
path: '/users/:id',
|
|
};
|
|
|
|
assertEquals(isStaticRouteDefinition(staticDef), true);
|
|
assertEquals(isDynamicRouteDefinition(staticDef), false);
|
|
});
|
|
|
|
Deno.test('isDynamicRouteDefinition returns true for dynamic route', () => {
|
|
const dynamicDef: IRouteDefinition = {
|
|
method: 'POST',
|
|
matcher: (_url, _req) => ({ params: {} }),
|
|
};
|
|
|
|
assertEquals(isDynamicRouteDefinition(dynamicDef), true);
|
|
assertEquals(isStaticRouteDefinition(dynamicDef), false);
|
|
});
|
|
|
|
Deno.test('isStaticRouteDefinition returns false for invalid object', () => {
|
|
const invalidDef = {
|
|
method: 'GET',
|
|
} as unknown as IRouteDefinition;
|
|
|
|
assertEquals(isStaticRouteDefinition(invalidDef), false);
|
|
});
|
|
|
|
Deno.test('isDynamicRouteDefinition returns false for object with no matcher', () => {
|
|
const def = {
|
|
method: 'DELETE',
|
|
path: '/something',
|
|
};
|
|
|
|
assertEquals(isDynamicRouteDefinition(def as IRouteDefinition), false);
|
|
});
|