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