// Copyright (c) 2015-2016 Yuya Ochiai // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. // TODO: Commenting out until Spectron is upgraded for Electron v14 // 'use strict'; // const fs = require('fs'); // const env = require('../modules/environment'); // describe('application', function desc() { // this.timeout(30000); // beforeEach(() => { // env.createTestUserDataDir(); // env.cleanTestConfig(); // this.app = env.getSpectronApp(); // return this.app.start(); // }); // afterEach(async () => { // if (this.app && this.app.isRunning()) { // await this.app.stop(); // } // }); // // it('should show two windows if there is no config file', async () => { // // await this.app.client.waitUntilWindowLoaded(); // // const count = await this.app.client.getWindowCount(); // // count.should.equal(2); // // const opened = await this.app.browserWindow.isDevToolsOpened(); // // opened.should.be.false; // // const visible = await this.app.browserWindow.isVisible(); // // visible.should.be.true; // // }); // if (process.platform === 'darwin') { // it.skip('should show closed window with cmd+tab', async () => { // // Unable to utilize Command key press due to: https://bugs.chromium.org/p/chromedriver/issues/detail?id=3023#c2 // await this.app.client.waitUntilWindowLoaded(); // await this.app.client.keys(['Meta', 'w']); // let visible = await this.app.browserWindow.isVisible(); // visible.should.be.false; // this.app.client.keys(['Meta', 'Tab']); // visible = await this.app.browserWindow.isVisible(); // visible.should.be.true; // }); // } // it.skip('should restore window bounds', async () => { // // bounds seems to be incorrectly calculated in some environments // // - Windows 10: OK // // - CircleCI: NG // const expectedBounds = {x: 100, y: 200, width: 300, height: 400}; // fs.writeFileSync(env.boundsInfoPath, JSON.stringify(expectedBounds)); // await this.app.restart(); // const bounds = await this.app.browserWindow.getBounds(); // bounds.should.deep.equal(expectedBounds); // }); // it('should NOT restore window bounds if the origin is located on outside of viewarea', async () => { // // bounds seems to be incorrectly calculated in some environments (e.g. CircleCI) // // - Windows 10: OK // // - CircleCI: NG // fs.writeFileSync(env.boundsInfoPath, JSON.stringify({x: -100000, y: 200, width: 300, height: 400})); // await this.app.restart(); // let bounds = await this.app.browserWindow.getBounds(); // bounds.x.should.satisfy((x) => (x > -10000)); // fs.writeFileSync(env.boundsInfoPath, JSON.stringify({x: 100, y: 200000, width: 300, height: 400})); // await this.app.restart(); // bounds = await this.app.browserWindow.getBounds(); // bounds.y.should.satisfy((y) => (y < 10000)); // }); // // it('should show settings.html when there is no config file', async () => { // // await this.app.client.waitUntilWindowLoaded(); // // await this.app.client.pause(1000); // // const url = await this.app.client.getUrl(); // // url.should.match(/\/settings.html$/); // // const existing = await this.app.client.isExisting('#newServerModal'); // // existing.should.equal(true); // // }); // // it('should show index.html when there is config file', async () => { // // const config = { // // version: 2, // // teams: [{ // // name: 'example', // // url: env.mattermostURL, // // order: 0, // // }, { // // name: 'github', // // url: 'https://github.com/', // // order: 1, // // }], // // showTrayIcon: false, // // trayIconTheme: 'light', // // minimizeToTray: false, // // notifications: { // // flashWindow: 0, // // bounceIcon: false, // // bounceIconType: 'informational', // // }, // // showUnreadBadge: true, // // useSpellChecker: true, // // enableHardwareAcceleration: true, // // autostart: true, // // darkMode: false, // // }; // // fs.writeFileSync(env.configFilePath, JSON.stringify(config)); // // await this.app.restart(); // // const url = await this.app.client.getUrl(); // // url.should.match(/\/index.html$/); // // }); // // it('should upgrade v0 config file', async () => { // // const Config = require('../../src/common/config').default; // // const newConfig = new Config(env.configFilePath); // // const oldConfig = { // // url: env.mattermostURL, // // }; // // fs.writeFileSync(env.configFilePath, JSON.stringify(oldConfig)); // // await this.app.restart(); // // const url = await this.app.client.getUrl(); // // url.should.match(/\/index.html$/); // // const str = fs.readFileSync(env.configFilePath, 'utf8'); // // const upgradedConfig = JSON.parse(str); // // upgradedConfig.version.should.equal(newConfig.defaultData.version); // // }); // // it.skip('should be stopped when the app instance already exists', (done) => { // // const secondApp = env.getSpectronApp(); // // // In the correct case, 'start().then' is not called. // // // So need to use setTimeout in order to finish this test. // // const timer = setTimeout(() => { // // done(); // // }, 3000); // // secondApp.start().then(() => { // // clearTimeout(timer); // // return secondApp.stop(); // // }).then(() => { // // done(new Error('Second app instance exists')); // // }); // });