Web Dev Solutions

Catalin Mititiuc

aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCatalin Mititiuc <webdevcat@proton.me>2024-04-17 22:26:53 -0700
committerCatalin Mititiuc <webdevcat@proton.me>2024-04-17 22:26:53 -0700
commit23967fe2f5ae9fb6d6c8a2cbc29845531f7acece (patch)
treea9bc130e002ed7241552891f70326976b01117fb /test
parent24e2bd5821b09d4d7e243fc62ab36f45454a0a03 (diff)
Integration test running with test server
Diffstat (limited to 'test')
-rw-r--r--test/google.test.js18
-rw-r--r--test/setup.cjs28
-rw-r--r--test/teardown.cjs5
3 files changed, 51 insertions, 0 deletions
diff --git a/test/google.test.js b/test/google.test.js
new file mode 100644
index 0000000..56729bf
--- /dev/null
+++ b/test/google.test.js
@@ -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');
+});
diff --git a/test/setup.cjs b/test/setup.cjs
new file mode 100644
index 0000000..01551a7
--- /dev/null
+++ b/test/setup.cjs
@@ -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);
+ }
+ });
+};
diff --git a/test/teardown.cjs b/test/teardown.cjs
new file mode 100644
index 0000000..1872061
--- /dev/null
+++ b/test/teardown.cjs
@@ -0,0 +1,5 @@
+console.log('Stopping server.')
+
+module.exports = function teardown() {
+ process.kill(globalThis.__INTEG_TEST_SERVER_PID__);
+};