diff --git a/e2e/electron/jasmine.js b/e2e/electron/jasmine.js new file mode 100644 index 0000000..94b9849 --- /dev/null +++ b/e2e/electron/jasmine.js @@ -0,0 +1,22 @@ +const Jasmine = require("jasmine"); +const { SpecReporter } = require("jasmine-spec-reporter"); + +const jasmine = new Jasmine(); +jasmine.loadConfig({ + showColors: true, + defaultTimeoutInterval: 15000, + spec_dir: "e2e/electron", + spec_files: ["./**/*-spec.ts"], + helpers: ["./**/*-helper.ts"], + random: false, + seed: null, + stopSpecOnExpectationFailure: false, +}); +jasmine.jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; + +require("ts-node").register({ + project: require("path").join(__dirname, "./tsconfig.json"), +}); +jasmine.env.clearReporters(); +jasmine.addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); +jasmine.execute(); diff --git a/e2e/electron/src/app.e2e-spec.ts b/e2e/electron/src/app.e2e-spec.ts new file mode 100644 index 0000000..92fe84d --- /dev/null +++ b/e2e/electron/src/app.e2e-spec.ts @@ -0,0 +1,35 @@ +import * as path from 'path'; +import { Application } from 'spectron'; + +describe('A simple test to verify a visible window is opened with a title', () => { + // Init local app + let app = new Application({ + path: path.join(__dirname, '../../../node_modules/.bin/electron'), + args: [path.join(__dirname, '../../../dist/build/main.js')], + }); + + beforeAll(async () => { + // Init local app and wait until window loaded + await app.start(); + await app.client.waitUntilWindowLoaded(); + }); + + afterAll(async () => { + if (app && app.isRunning()) { + // Wait 1 second and then stop local app + await new Promise((resolve) => setTimeout(resolve, 1000)); + await app.stop(); + } + }); + + it('shows an initial window', async () => { + // Checking there is one visible window + expect(await app.browserWindow.isVisible()).toEqual(true); + // Please note that getWindowCount() will return 2 if `dev tools` are opened. + expect(await app.client.getWindowCount()).toEqual(1); + }); + + it('should have expected title', async () => { + expect(await app.client.getTitle()).toEqual('ElectronAngularQuickStart'); + }); +}); diff --git a/e2e/electron/tsconfig.json b/e2e/electron/tsconfig.json new file mode 100644 index 0000000..8ad53b9 --- /dev/null +++ b/e2e/electron/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es5", + "types": ["jasmine", "jasminewd2", "node"] + } +}