Integration test running with test server
This commit is contained in:
18
test/google.test.js
Normal file
18
test/google.test.js
Normal 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
28
test/setup.cjs
Normal 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
5
test/teardown.cjs
Normal file
@@ -0,0 +1,5 @@
|
||||
console.log('Stopping server.')
|
||||
|
||||
module.exports = function teardown() {
|
||||
process.kill(globalThis.__INTEG_TEST_SERVER_PID__);
|
||||
};
|
||||
Reference in New Issue
Block a user