Skip to content

Commit f3bc214

Browse files
committed
refactor(tests): streamline server setup and cleanup in integration tests
1 parent 6c2cd1e commit f3bc214

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

examples/basic-workspace/server.test.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,19 @@ async function parseMcpResponse(response: Response): Promise<any> {
1212
}
1313

1414
describe('Server Tests', () => {
15-
let server: any;
15+
let server: { stop: () => void; port: number };
1616
let baseUrl: string;
1717

1818
beforeAll(async () => {
19-
const { app, websocket } = await createServer(epicenterConfig);
20-
server = Bun.serve({
21-
fetch: app.fetch,
22-
websocket,
23-
port: 0, // Random available port
24-
});
25-
baseUrl = `http://localhost:${server.port}`;
19+
const { app } = await createServer(epicenterConfig);
20+
const elysiaServer = app.listen(0);
21+
const port = elysiaServer.server!.port;
22+
server = { stop: () => elysiaServer.stop(), port };
23+
baseUrl = `http://localhost:${port}`;
2624
});
2725

2826
afterAll(() => {
29-
server.stop();
27+
server?.stop();
3028
});
3129

3230
describe('REST Endpoints - Basic CRUD', () => {

packages/epicenter/tests/integration/server.test.ts

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { beforeAll, describe, expect, test } from 'bun:test';
1+
import { afterAll, beforeAll, describe, expect, test } from 'bun:test';
22
import { type } from 'arktype';
33
import { eq } from 'drizzle-orm';
44
import { Ok } from 'wellcrafted/result';
@@ -102,16 +102,17 @@ describe('Server Integration Tests', () => {
102102
workspaces: [blogWorkspace],
103103
});
104104

105-
let _app: Awaited<ReturnType<typeof createServer>>['app'];
106-
let server: any;
105+
let server: { stop: () => void; port: number };
107106

108107
beforeAll(async () => {
109-
const { app, websocket } = await createServer(singleWorkspaceEpicenter);
110-
server = Bun.serve({
111-
fetch: app.fetch,
112-
websocket,
113-
port: 0, // Random available port
114-
});
108+
const { app } = await createServer(singleWorkspaceEpicenter);
109+
const elysiaServer = app.listen(0);
110+
const port = elysiaServer.server!.port;
111+
server = { stop: () => elysiaServer.stop(), port };
112+
});
113+
114+
afterAll(() => {
115+
server?.stop();
115116
});
116117

117118
test('creates post via POST /workspaces/blog/createPost', async () => {
@@ -157,7 +158,8 @@ describe('Server Integration Tests', () => {
157158
expect(Array.isArray(data.data)).toBe(true);
158159
});
159160

160-
test('lists MCP tools via POST /mcp', async () => {
161+
// TODO: MCP integration is currently disabled pending custom implementation
162+
test.skip('lists MCP tools via POST /mcp', async () => {
161163
const response = await fetch(`http://localhost:${server.port}/mcp`, {
162164
method: 'POST',
163165
headers: {
@@ -184,7 +186,7 @@ describe('Server Integration Tests', () => {
184186
expect(createPostTool).toBeDefined();
185187
});
186188

187-
test('calls MCP tool via POST /mcp', async () => {
189+
test.skip('calls MCP tool via POST /mcp', async () => {
188190
const response = await fetch(`http://localhost:${server.port}/mcp`, {
189191
method: 'POST',
190192
headers: {
@@ -275,16 +277,17 @@ describe('Server Integration Tests', () => {
275277
workspaces: [blogWorkspace, authWorkspace],
276278
});
277279

278-
let _app: Awaited<ReturnType<typeof createServer>>['app'];
279-
let server: any;
280+
let server: { stop: () => void; port: number };
280281

281282
beforeAll(async () => {
282-
const { app, websocket } = await createServer(epicenter);
283-
server = Bun.serve({
284-
fetch: app.fetch,
285-
websocket,
286-
port: 0,
287-
});
283+
const { app } = await createServer(epicenter);
284+
const elysiaServer = app.listen(0);
285+
const port = elysiaServer.server!.port;
286+
server = { stop: () => elysiaServer.stop(), port };
287+
});
288+
289+
afterAll(() => {
290+
server?.stop();
288291
});
289292

290293
test('creates post via POST /workspaces/blog/createPost', async () => {
@@ -323,7 +326,8 @@ describe('Server Integration Tests', () => {
323326
expect(data.data.email).toBe('[email protected]');
324327
});
325328

326-
test('lists MCP tools from all workspaces', async () => {
329+
// TODO: MCP integration is currently disabled pending custom implementation
330+
test.skip('lists MCP tools from all workspaces', async () => {
327331
const response = await fetch(`http://localhost:${server.port}/mcp`, {
328332
method: 'POST',
329333
headers: {
@@ -352,7 +356,7 @@ describe('Server Integration Tests', () => {
352356
expect(authTools.length).toBeGreaterThan(0);
353357
});
354358

355-
test('calls MCP tool from specific workspace', async () => {
359+
test.skip('calls MCP tool from specific workspace', async () => {
356360
const response = await fetch(`http://localhost:${server.port}/mcp`, {
357361
method: 'POST',
358362
headers: {

0 commit comments

Comments
 (0)