feat(swarm): add GET /api/swarm/archetypes route with passing test
This commit is contained in:
parent
2d88c57b55
commit
1925d625b6
2 changed files with 27 additions and 0 deletions
7
src/app/api/swarm/archetypes/route.ts
Normal file
7
src/app/api/swarm/archetypes/route.ts
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
import { NextResponse } from 'next/server';
|
||||||
|
import { getArchetypes } from '../../../../lib/server/beads-fs';
|
||||||
|
|
||||||
|
export async function GET() {
|
||||||
|
const data = await getArchetypes();
|
||||||
|
return NextResponse.json(data);
|
||||||
|
}
|
||||||
20
tests/api/swarm/archetypes.test.ts
Normal file
20
tests/api/swarm/archetypes.test.ts
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { expect, test, describe, mock } from 'bun:test';
|
||||||
|
import { GET } from '../../../src/app/api/swarm/archetypes/route';
|
||||||
|
|
||||||
|
// Mock the dependency
|
||||||
|
mock.module('../../../src/lib/server/beads-fs', () => ({
|
||||||
|
getArchetypes: async () => [
|
||||||
|
{ id: 'test-arch', name: 'Test', isBuiltIn: true }
|
||||||
|
]
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('/api/swarm/archetypes GET', () => {
|
||||||
|
test('returns 200 and a JSON array of archetypes', async () => {
|
||||||
|
const response = await GET();
|
||||||
|
expect(response.status).toBe(200);
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
expect(Array.isArray(data)).toBe(true);
|
||||||
|
expect(data[0].id).toBe('test-arch');
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue