Clean up test

This commit is contained in:
Catalin Constantin Mititiuc 2024-05-02 08:54:59 -07:00
parent 6b32bde0bc
commit e639bedadc
6 changed files with 24 additions and 70 deletions

2
npm
View File

@ -1,3 +1,3 @@
#!/usr/bin/env bash #!/usr/bin/env bash
docker run --rm --init -it -v $PWD:/usr/src/app -u $(id -u):$(id -u) -p 8080:8080 --name btroops-test btroops npm $@ docker run --rm --init -it -v $PWD:/usr/src/app -u $(id -u):$(id -u) -p 8080:8080 btroops npm $@

View File

@ -11,8 +11,8 @@
}, },
"scripts": { "scripts": {
"start": "node dev-server.cjs", "start": "node dev-server.cjs",
"test:integ": "DBUS_SESSION_BUS_ADDRESS=/dev/null node --trace-warnings ./node_modules/.bin/jest --detectOpenHandles --config jest.config.integ.cjs", "test:integ": "node --trace-warnings ./node_modules/.bin/jest --detectOpenHandles --config jest.config.integ.cjs",
"test:integ:debug": "NODE_INSPECT_RESUME_ON_START=1 DBUS_SESSION_BUS_ADDRESS=/dev/null node inspect ./node_modules/jest/bin/jest.js --config jest.config.integ.cjs --runInBand test/integration/page.test.js", "test:integ:debug": "NODE_INSPECT_RESUME_ON_START=1 node inspect ./node_modules/jest/bin/jest.js --config jest.config.integ.cjs --runInBand test/integration/page.test.js",
"test": "jest" "test": "jest"
} }
} }

3
run-shell Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
docker run --rm --init -it -v $PWD:/usr/src/app -p 8080:8080 btroops bash

3
run-shell-test Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
docker run --rm --init -it --hostname btroops-test -v $PWD:/usr/src/app -p 8080:8080 --name btroops-test btroops bash

View File

@ -1,3 +0,0 @@
#!/usr/bin/env bash
docker run --rm --init -it -v $PWD:/usr/src/app -p 8080:8080 --name btroops-test btroops bash

View File

@ -1,91 +1,42 @@
const { Builder, By } = require('selenium-webdriver'), const { Builder, By } = require('selenium-webdriver'),
chrome = require('selenium-webdriver/chrome.js'), chrome = require('selenium-webdriver/chrome.js'),
{ Command } = require('selenium-webdriver/lib/command.js'),
{ expect, it } = require('@jest/globals'), { expect, it } = require('@jest/globals'),
chromeOptions = new chrome.Options(),
{ mkdir, writeFile } = require('node:fs/promises'), { mkdir, writeFile } = require('node:fs/promises'),
path = require('path'), path = require('path');
chromeOptions = new chrome.Options();
chromeOptions.addArguments('--headless', '--disable-gpu', '--no-sandbox'); chromeOptions.addArguments('--headless', '--disable-gpu', '--no-sandbox');
let driver; let driver;
// beforeAll(async () => {
// });
beforeEach(async () => { beforeEach(async () => {
// console.log('setup');
// driver = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
driver = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build(); driver = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
await driver.get("http://localhost:3005");
}); });
it.each(Array(100).fill(null))('looper', async () => { it('loads the page', async () => {
// it('looper', async () => { expect(await driver.getTitle()).toEqual('Infantry Combat Solo Basic');
// console.log('test');
// const driver = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
// await driver.get("http://localhost:3005").catch(e => console.log(e));;
// await driver.quit();
await driver.get("http://localhost:3005").catch(e => console.log(e));
const title = await driver.getTitle();
expect(title).toEqual('Infantry Combat Solo Basic');
// await driver.switchTo().defaultContent();
}); });
it('debugger', async () => { it('selects an off-board soldier', async () => {
// it.only('loads the page', async () => { await driver.switchTo().frame(await driver.findElement(By.css('object')));
// console.log('test');
// const driver = new Builder().forBrowser('chrome').setChromeOptions(chromeOptions).build();
// await driver.get("http://localhost:3005").catch(e => console.log(e));;
// await driver.quit();
await driver.get("http://localhost:3005").catch(e => console.log(e));
const title = await driver.getTitle();
expect(title).toEqual('Infantry Combat Solo Basic'); const selector = '.counter[data-allegiance="attacker"][data-number="1"]',
// await driver.switchTo().defaultContent(); svg = await driver.findElement(By.css('svg')),
debugger; counter = await driver.findElement(By.css(selector), svg);
await counter.click();
expect(await counter.getAttribute('class')).toEqual(expect.stringContaining('selected'));
}); });
// it.only.each(Array(10).fill(null))('selects an off-board soldier', async () => {
// it('selects an off-board soldier', async () => {
// await driver.switchTo().frame(await driver.findElement(By.css('object')));
// const selector = '.counter[data-allegiance="attacker"][data-number="1"]',
// svg = await driver.findElement(By.css('svg')),
// counter = await driver.findElement(By.css(selector), svg);
// await counter.click();
// // await takeScreenshot(driver);
// expect(await counter.getAttribute('class')).toEqual(expect.stringContaining('selected'));
// // await driver.switchTo().defaultContent();
// });
afterEach(async () => { afterEach(async () => {
// console.log('teardown');
// const session = await this.driver.getSession();
// const sessionId = session.getId();
// const executor = await this.driver.getExecutor();
// await executor.execute(new Command('close').setParameter('sessionId', sessionId));
await driver.quit(); await driver.quit();
}); });
// afterAll(async () => {
// // console.log('executor', driver.getExecutor());
// const session = await driver.getSession();
// const sessionId = session.getId();
// const executor = await driver.getExecutor();
// await executor.execute(new Command('close').setParameter('sessionId', sessionId));
// await driver.quit();
// });
async function takeScreenshot(driver) { async function takeScreenshot(driver) {
const dir = './test/screenshots'; const dir = './test/screenshots';
const fileName = '"' + path.relative(process.cwd(), __filename) + ' ' + expect.getState().currentTestName + ` ${new Date()}".png`; const fileName = path.relative(process.cwd(), __filename) + ' "' + expect.getState().currentTestName + `" ${new Date().toISOString()}.png`;
// console.log(fileName.replaceAll('/', '-'));
const image = await driver.takeScreenshot(); const image = await driver.takeScreenshot();
await mkdir(dir, { recursive: true }); await mkdir(dir, { recursive: true });
await writeFile(`${dir}/${fileName.replaceAll('/', '-')}`, image, 'base64'); await writeFile(`${dir}/${fileName.replaceAll('/', '-')}`, image, 'base64');