sunrise-cms/test/1_serverCypress.ts

66 lines
1.6 KiB
TypeScript

/* eslint-disable unicorn/filename-case */
import * as assert from "assert";
import { portNumber } from "./_globals.js";
import { exec } from "child_process";
import * as http from "http";
import { app } from "../app.js";
describe("lot-occupancy-system", () => {
const httpServer = http.createServer(app);
let serverStarted = false;
before(() => {
httpServer.listen(portNumber);
httpServer.on("listening", () => {
serverStarted = true;
});
});
after(() => {
try {
httpServer.close();
} catch {
// ignore
}
});
it("Ensure server starts on port " + portNumber.toString(), () => {
assert.ok(serverStarted);
});
describe("Cypress tests", () => {
it("should run Cypress tests", (done) => {
let cypressCommand =
"cypress run --config-file cypress.config.ts --browser chrome";
if (
process.env.CYPRESS_RECORD_KEY &&
process.env.CYPRESS_RECORD_KEY !== ""
) {
cypressCommand += " --record";
}
const childProcess = exec(cypressCommand);
childProcess.stdout.on("data", (data) => {
console.log(data);
});
childProcess.stderr.on("data", (data) => {
console.error(data);
});
childProcess.on("exit", (code) => {
assert.ok(code === 0);
done();
});
}).timeout(30 * 60 * 60 * 1000);
});
});