From 0d6df06d7a55dbaaf6319ddd5db9885fd34bd4df Mon Sep 17 00:00:00 2001 From: Tasso Evangelista Date: Fri, 14 Sep 2018 15:00:19 -0300 Subject: [PATCH] Add helpers for menu items in e2e tests --- e2e/utils.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/e2e/utils.js b/e2e/utils.js index 370c7d70c..5a7bed54c 100644 --- a/e2e/utils.js +++ b/e2e/utils.js @@ -38,3 +38,50 @@ const fetchLogs = async () => { const logs = await app.client.getMainProcessLogs(); logs.forEach(log => console.log(log)); }; + +export const menuItem = (menuId, cb) => ({ + get exists() { + return app.client.execute((menuId) => { + const { Menu } = require('electron').remote; + const appMenu = Menu.getApplicationMenu(); + const menuItem = appMenu.getMenuItemById(menuId); + return !!menuItem; + }, menuId).then(({ value }) => value); + }, + + get enabled() { + return app.client.execute((menuId) => { + const { Menu } = require('electron').remote; + const appMenu = Menu.getApplicationMenu(); + const menuItem = appMenu.getMenuItemById(menuId); + return menuItem.enabled; + }, menuId).then(({ value }) => value); + }, + + get visible() { + return app.client.execute((menuId) => { + const { Menu } = require('electron').remote; + const appMenu = Menu.getApplicationMenu(); + const menuItem = appMenu.getMenuItemById(menuId); + return menuItem.visible; + }, menuId).then(({ value }) => value); + }, + + get label() { + return app.client.execute((menuId) => { + const { Menu } = require('electron').remote; + const appMenu = Menu.getApplicationMenu(); + const menuItem = appMenu.getMenuItemById(menuId); + return menuItem.label; + }, menuId).then(({ value }) => value); + }, + + click() { + return app.client.execute((menuId) => { + const { Menu } = require('electron').remote; + const appMenu = Menu.getApplicationMenu(); + const menuItem = appMenu.getMenuItemById(menuId); + menuItem.click(); + }, menuId); + } +}); -- GitLab