Integration test running with test server

This commit is contained in:
2025-06-16 22:41:29 -07:00
parent 927d8a7f0c
commit 6084c54e2e
9 changed files with 3614 additions and 23 deletions

18
test/google.test.js Normal file
View File

@@ -0,0 +1,18 @@
const { Builder } = require('selenium-webdriver'),
chrome = require('selenium-webdriver/chrome.js'),
{ expect, it } = require('@jest/globals'),
chromeOptions = new chrome.Options();
let driver;
chromeOptions.addArguments('--headless', '--disable-gpu', '--no-sandbox');
beforeAll(async () => {
driver = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
});
it('loads the page', async () => {
await driver.get("http://localhost:8080");
expect(await driver.getTitle()).toEqual('Infantry Combat Solo Basic');
});

28
test/setup.cjs Normal file
View File

@@ -0,0 +1,28 @@
console.log("\nSpawning server process...");
const { spawn } = require("child_process");
module.exports = async function () {
const child = spawn("node", ["dev-server.cjs"]);
child.stdout.on('data', (data) => {
console.log(`${data}`);
});
// child.stderr.on('data', (data) => {
// console.error(`stderr: ${data}`);
// });
// child.on('close', (code) => {
// console.log(`child process exited with code ${code}`);
// });
globalThis.__INTEG_TEST_SERVER_PID__ = child.pid;
child.stderr.on("data", (data) => {
const str = data.toString();
console.log("[server]", str);
if (str.includes("localhost:3005")) {
setTimeout(resolve, 200);
}
});
};

5
test/teardown.cjs Normal file
View File

@@ -0,0 +1,5 @@
console.log('Stopping server.')
module.exports = function teardown() {
process.kill(globalThis.__INTEG_TEST_SERVER_PID__);
};