From 5f489e28a0bd404dfff47ded0bdf058f737a3648 Mon Sep 17 00:00:00 2001 From: Md_ZubairAhmed Date: Mon, 31 Jan 2022 20:29:08 +0530 Subject: [PATCH] test : MM-T2465 Linux Dark Mode Toggle (#1981) --- e2e/specs/linux_dark_mode.test.js | 64 +++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 e2e/specs/linux_dark_mode.test.js diff --git a/e2e/specs/linux_dark_mode.test.js b/e2e/specs/linux_dark_mode.test.js new file mode 100644 index 00000000..9a96ea12 --- /dev/null +++ b/e2e/specs/linux_dark_mode.test.js @@ -0,0 +1,64 @@ +// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. +'use strict'; + +const fs = require('fs'); + +const robot = require('robotjs'); + +const env = require('../modules/environment'); +const {asyncSleep} = require('../modules/utils'); + +describe('dark_mode', function desc() { + this.timeout(30000); + + const config = env.demoConfig; + + beforeEach(async () => { + env.cleanDataDir(); + env.createTestUserDataDir(); + env.cleanTestConfig(); + fs.writeFileSync(env.configFilePath, JSON.stringify(config)); + await asyncSleep(1000); + this.app = await env.getApp(); + this.serverMap = await env.getServerMap(this.app); + }); + + afterEach(async () => { + if (this.app) { + await this.app.close(); + } + }); + + if (process.platform !== 'darwin') { + it('MM-T2465 Linux Dark Mode Toggle', async () => { + const mainWindow = this.app.windows().find((window) => window.url().includes('index')); + mainWindow.should.not.be.null; + + // Toggle Dark Mode + toggleDarkMode(); + + const topBarElementWithDarkMode = await mainWindow.waitForSelector('.topBar'); + const topBarElementClassWithDarkMode = await topBarElementWithDarkMode.getAttribute('class'); + + topBarElementClassWithDarkMode.should.contain('topBar darkMode row'); + + // Toggle Light Mode + toggleDarkMode(); + + const topBarElementWithLightMode = await mainWindow.waitForSelector('.topBar'); + const topBarElementClassWithLightMode = await topBarElementWithLightMode.getAttribute('class'); + + topBarElementClassWithLightMode.should.contain('topBar row'); + }); + } +}); + +function toggleDarkMode() { + robot.keyTap('alt'); + robot.keyTap('enter'); + robot.keyTap('v'); + robot.keyTap('t'); + robot.keyTap('t'); // Click on "Toggle Dark Mode" menu item + robot.keyTap('enter'); +}