commit
b57fab5558
@ -1,80 +0,0 @@
|
|||||||
// tslint:disable: no-console
|
|
||||||
// tslint:disable no-implicit-dependencies
|
|
||||||
import { expect } from 'chai';
|
|
||||||
import { _electron as electron, ElectronApplication, Page } from 'playwright';
|
|
||||||
|
|
||||||
const NODE_ENV = 'integration-test';
|
|
||||||
|
|
||||||
function throwIfNoFirstInstance(
|
|
||||||
instanceToCastIfValid: ElectronApplication | null,
|
|
||||||
pageToCastIfValid: Page | null
|
|
||||||
): { instance: ElectronApplication; page: Page } {
|
|
||||||
if (!instanceToCastIfValid) {
|
|
||||||
throw new Error('no instanceToCastIfValid');
|
|
||||||
}
|
|
||||||
if (!pageToCastIfValid) {
|
|
||||||
throw new Error('no pageToCastIfValid');
|
|
||||||
}
|
|
||||||
return { page: pageToCastIfValid, instance: instanceToCastIfValid };
|
|
||||||
}
|
|
||||||
|
|
||||||
async function createAppInstance(MULTI: number) {
|
|
||||||
// Launch Electron app.
|
|
||||||
process.env.NODE_ENV = NODE_ENV;
|
|
||||||
process.env.NODE_APP_INSTANCE = `${MULTI}`;
|
|
||||||
const instance = await electron.launch({
|
|
||||||
args: ['main.js'],
|
|
||||||
});
|
|
||||||
|
|
||||||
// Get the first window that the app opens, wait if necessary.
|
|
||||||
const page = await instance.firstWindow();
|
|
||||||
// page.on('console', console.log);
|
|
||||||
return { instance, page };
|
|
||||||
}
|
|
||||||
|
|
||||||
async function killAppInstance(appInstance?: ElectronApplication | null) {
|
|
||||||
// Kill Electron app.
|
|
||||||
if (appInstance) {
|
|
||||||
await appInstance.close();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('quick test', () => {
|
|
||||||
let firstAppInstance: ElectronApplication | null = null;
|
|
||||||
let firstAppPage: Page | null = null;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
if (firstAppInstance) {
|
|
||||||
throw new Error('beforeAll cannot create first instance');
|
|
||||||
}
|
|
||||||
const { instance, page } = await createAppInstance(1);
|
|
||||||
firstAppInstance = instance;
|
|
||||||
firstAppPage = page;
|
|
||||||
});
|
|
||||||
|
|
||||||
afterEach(async () => {
|
|
||||||
firstAppInstance = await killAppInstance(firstAppInstance);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('check "Begin your Session" is shown on app start', async () => {
|
|
||||||
const { instance, page } = throwIfNoFirstInstance(firstAppInstance, firstAppPage);
|
|
||||||
// Evaluation expression in the Electron context.
|
|
||||||
const appPath = await instance.evaluate(async ({ app }) => {
|
|
||||||
// This runs in the main Electron process, parameter here is always
|
|
||||||
// the result of the require('electron') in the main app script.
|
|
||||||
return app.getAppPath();
|
|
||||||
});
|
|
||||||
console.log(appPath);
|
|
||||||
// Print the title.instance
|
|
||||||
const title = await page.title();
|
|
||||||
|
|
||||||
const beginSessionSelector = await page.waitForSelector(
|
|
||||||
'div.session-content-accent-text.title'
|
|
||||||
);
|
|
||||||
const contentBeginYourSession = await beginSessionSelector.innerHTML();
|
|
||||||
expect(contentBeginYourSession).to.equal('Begin your Session.');
|
|
||||||
|
|
||||||
expect(title).to.eq('Session');
|
|
||||||
});
|
|
||||||
});
|
|
Loading…
Reference in New Issue