You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
900 B
JavaScript

const { createServer } = require("http");
const { Server } = require("socket.io");
const Client = require("../../client/node_modules/socket.io-client");
const RunStatus = require("../../runstatus");
let httpServer;
let port;
let io;
let runStatus;
beforeAll((done) => {
const httpServer = createServer();
io = new Server(httpServer);
httpServer.listen(() => {
port = httpServer.address().port;
runStatus = new RunStatus();
runStatus.start(httpServer);
done();
});
});
afterAll(() => {
io.close();
});
test("RunStatus - Connect", (done) => {
// Create a client
const clientSocket = new Client(`http://localhost:${port}`);
clientSocket.on("connect", () => {
clientSocket.on("updatedRun", (run) => {
expect(run.runId).toBe(123);
clientSocket.close();
done();
});
// Emit the message
runStatus.updatedRun({ runId: 123 });
});
});