Web Dev Solutions

Catalin Mititiuc

aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '__tests__')
-rw-r--r--__tests__/integration/page.spec.js21
-rw-r--r--__tests__/integration/setup.js21
-rw-r--r--__tests__/integration/teardown.js4
3 files changed, 46 insertions, 0 deletions
diff --git a/__tests__/integration/page.spec.js b/__tests__/integration/page.spec.js
new file mode 100644
index 0000000..069a222
--- /dev/null
+++ b/__tests__/integration/page.spec.js
@@ -0,0 +1,21 @@
+const { Builder } = require('selenium-webdriver');
+const chrome = require('selenium-webdriver/chrome');
+const chromeOptions = new chrome.Options();
+
+let driver;
+
+chromeOptions.addArguments('--headless', '--disable-gpu', '--no-sandbox');
+
+beforeEach(async () => {
+ const builder = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions);
+ driver = builder.build();
+});
+
+it('loads the page', async () => {
+ await driver.get('http://localhost:8080');
+ expect(await driver.getTitle()).toEqual('SVG Element Pan & Zoom Demo');
+});
+
+afterEach(async () => {
+ await driver.quit();
+});
diff --git a/__tests__/integration/setup.js b/__tests__/integration/setup.js
new file mode 100644
index 0000000..b50e1ca
--- /dev/null
+++ b/__tests__/integration/setup.js
@@ -0,0 +1,21 @@
+const { spawn } = require('child_process');
+
+module.exports = async function (globalConfig, projectConfig) {
+ console.info('\nSpawning server process...');
+ const child = spawn('node', ['server.js']);
+
+ 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(projectConfig.globals.testServerUrl)) {
+ setTimeout(resolve, 200);
+ }
+ });
+};
diff --git a/__tests__/integration/teardown.js b/__tests__/integration/teardown.js
new file mode 100644
index 0000000..c4a55b9
--- /dev/null
+++ b/__tests__/integration/teardown.js
@@ -0,0 +1,4 @@
+module.exports = async function (globalConfig, projectConfig) {
+ console.info('Stopping server.');
+ process.kill(globalThis.__INTEG_TEST_SERVER_PID__);
+};