37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
import { describe, expect, test, mock, afterEach } from "bun:test";
|
|
import startServer from "../../../../src/functions/server/start-server";
|
|
import { log } from "../../../../src/utils/log";
|
|
// Mock log so we don't spam terminal during tests
|
|
mock.module("../../../../src/utils/log", () => ({
|
|
log: {
|
|
server: mock((msg) => { }),
|
|
info: mock((msg) => { }),
|
|
error: mock((msg) => { }),
|
|
}
|
|
}));
|
|
// Mock grabConfig so it doesn't try to look for bunext.config.ts and exit process
|
|
mock.module("../../../../src/functions/grab-config", () => ({
|
|
default: async () => ({})
|
|
}));
|
|
// Mock grabAppPort to return 0 so Bun.serve picks a random port
|
|
mock.module("../../../../src/utils/grab-app-port", () => ({
|
|
default: () => 0
|
|
}));
|
|
describe("startServer", () => {
|
|
afterEach(() => {
|
|
if (global.SERVER) {
|
|
global.SERVER.stop(true);
|
|
global.SERVER = undefined;
|
|
}
|
|
});
|
|
test("starts the server and assigns to global.SERVER", async () => {
|
|
global.CONFIG = { development: true };
|
|
const server = await startServer();
|
|
expect(server).toBeDefined();
|
|
expect(server.port).toBeGreaterThan(0);
|
|
expect(global.SERVER).toBe(server);
|
|
expect(log.server).toHaveBeenCalled();
|
|
server.stop(true);
|
|
});
|
|
});
|