Skip to content

Calling testWithSpectron() opens infinite windows #467

@thislooksfun

Description

@thislooksfun

Describe the bug
Calling testWithSpectron() hangs the tests, and starts opening as many Electron windows as it can until the tests time out.

To Reproduce
Run the following spec:

import testWithSpectron from "vue-cli-plugin-electron-builder/lib/testWithSpectron"; import chai, { expect } from "chai"; import chaiAsPromised from "chai-as-promised"; chai.use(chaiAsPromised); describe("Application launch", function() { this.timeout(30000); beforeEach(function() { console.log("Before Each -- testWithSpectron()"); return testWithSpectron().then(instance => { console.log("testWithSpectron().then"); this.app = instance.app; this.stopServe = instance.stopServe; }); }); beforeEach(function() { console.log("Before Each -- chaiAsPromised"); chaiAsPromised.transferPromiseness = this.app.transferPromiseness; }); afterEach(function() { console.log("After"); if (this.app && this.app.isRunning()) { return this.stopServe(); } }); it("opens a window", function() { console.log("opens?"); const gwc = this.app.client.getWindowCount(); console.log(gwc); return expect(gwc).to.eventually.have.at.least(1); }); });

Expected behavior
I expected the output

> Before Each -- testWithSpectron() > testWithSpectron().then > Before Each -- chaiAsPromised > opens? > After 

And for it to only open one Electron window (or maybe even 0, if it should be headless).

Instead, it opens 5-10 windows (just keeps going until Mocha times out).

Screenshots
Screen Shot 2019-09-10 at 9 54 53 PM
Screen Shot 2019-09-10 at 9 55 34 PM
Screen Shot 2019-09-10 at 9 56 07 PM

Environment (please complete the following information):

  • OS and version: macOS 10.14.6 (18G87)
  • node version: v12.5.0
  • npm version: 6.9.0
  • yarn version (if used): N/A
  • vue-cli-plugin-electron-builder version : 1.4.0
  • electron version: 6.0.7
  • other vue plugins used:
    • @vue/cli-plugin-babel: 3.11.0
    • @vue/cli-plugin-eslint: 3.11.0
    • @vue/cli-plugin-unit-mocha: 3.11.0
    • @vue/cli-service: 3.11.0
    • @vue/test-utils: 1.0.0-beta.29
  • custom config for vcp-electron-builder:
// vue.config.js const path = require("path"); module.exports = { configureWebpack: { resolve: { alias: { Disciplines$: path.join(__dirname, "src/assets/earthdawn/disciplines"), Races$: path.join(__dirname, "src/assets/earthdawn/races"), Skills$: path.join(__dirname, "src/assets/earthdawn/skills"), Talents$: path.join(__dirname, "src/assets/earthdawn/talents"), }, }, }, chainWebpack: config => { config.module .rule("yaml") .test(/\.ya?ml$/) .use("js-yaml-loader") .loader("js-yaml-loader") .end(); }, pluginOptions: { electronBuilder: { chainWebpackMainProcess: config => { config.resolve.alias.set("@", path.join(__dirname, "src/")); }, }, }, };

Additional context
N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions