index : btroops | |
Virtual board game-aid for BattleTroops, an infantry combat simulator wargame published by FASA in 1989. |
aboutsummaryrefslogtreecommitdiff |
diff options
author | Catalin Mititiuc <webdevcat@proton.me> | 2024-04-18 10:01:26 -0700 |
---|---|---|
committer | Catalin Mititiuc <webdevcat@proton.me> | 2024-04-18 10:05:21 -0700 |
commit | 8e74cef4a5b63ab14e47d8d698f804745c0c4ea6 (patch) | |
tree | 6fee17cb5c152ae584d4e81a7c941ee9d08588e9 /test/integration | |
parent | 23967fe2f5ae9fb6d6c8a2cbc29845531f7acece (diff) |
Run server on different port when running tests
Diffstat (limited to 'test/integration')
-rw-r--r-- | test/integration/page.test.js | 18 | ||||
-rw-r--r-- | test/integration/setup.cjs | 20 | ||||
-rw-r--r-- | test/integration/teardown.cjs | 5 |
3 files changed, 43 insertions, 0 deletions
diff --git a/test/integration/page.test.js b/test/integration/page.test.js new file mode 100644 index 0000000..7157bff --- /dev/null +++ b/test/integration/page.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:3005"); + + expect(await driver.getTitle()).toEqual('Infantry Combat Solo Basic'); +}); diff --git a/test/integration/setup.cjs b/test/integration/setup.cjs new file mode 100644 index 0000000..c476077 --- /dev/null +++ b/test/integration/setup.cjs @@ -0,0 +1,20 @@ +console.log("\nSpawning server process..."); +const { spawn } = require("child_process"); + +module.exports = async function () { + const child = spawn("node", ["dev-server.cjs", "--test"]); + + child.stdout.on('data', (data) => { + console.log(`${data}`); + }); + + 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/integration/teardown.cjs b/test/integration/teardown.cjs new file mode 100644 index 0000000..1872061 --- /dev/null +++ b/test/integration/teardown.cjs @@ -0,0 +1,5 @@ +console.log('Stopping server.') + +module.exports = function teardown() { + process.kill(globalThis.__INTEG_TEST_SERVER_PID__); +}; |