From 0383c28d33aee407bc27d7fbfdb5d874ce2d25e1 Mon Sep 17 00:00:00 2001 From: Kailash Bhalaki Date: Sun, 7 Apr 2019 00:40:37 +0530 Subject: [PATCH] [FIX] Closing sidebar when room menu is clicked. (#13842) * Don't close sidebar when room menu is clicked. * Add tests to check if sidebar closes after clicking sidebar item menu * Update side-nav.page.js * Fix typo in class name * Update side-nav.page.js * Update 08-resolutions.js --- app/ui-sidenav/client/sidebarItem.js | 1 + tests/end-to-end/ui/08-resolutions.js | 9 +++++++++ tests/pageobjects/side-nav.page.js | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/app/ui-sidenav/client/sidebarItem.js b/app/ui-sidenav/client/sidebarItem.js index 0ff8026d01e..9dec41fcc5d 100644 --- a/app/ui-sidenav/client/sidebarItem.js +++ b/app/ui-sidenav/client/sidebarItem.js @@ -101,6 +101,7 @@ Template.sidebarItem.events({ return menu.close(); }, 'click .sidebar-item__menu'(e) { + e.stopPropagation(); // to not close the menu e.preventDefault(); const canLeave = () => { diff --git a/tests/end-to-end/ui/08-resolutions.js b/tests/end-to-end/ui/08-resolutions.js index 41ecd5d7387..5ed288e7466 100644 --- a/tests/end-to-end/ui/08-resolutions.js +++ b/tests/end-to-end/ui/08-resolutions.js @@ -35,6 +35,15 @@ describe('[Resolution]', () => { mainContent.mainContent.getLocation().should.not.deep.equal({ x:0 }); }); + it('it should not close sidebar on pressing the sidebar item menu', () => { + sideNav.firstSidebarItem.moveToObject(); + sideNav.firstSidebarItemMenu.waitForVisible(10000); + sideNav.firstSidebarItemMenu.click(); + browser.pause(100); + mainContent.mainContent.getLocation().should.not.deep.equal({ x:0 }); + sideNav.popoverOverlay.click(); + }); + it('it should open general channel', () => { sideNav.openChannel('general'); }); diff --git a/tests/pageobjects/side-nav.page.js b/tests/pageobjects/side-nav.page.js index 315175924b4..baed6e3b07a 100644 --- a/tests/pageobjects/side-nav.page.js +++ b/tests/pageobjects/side-nav.page.js @@ -52,6 +52,10 @@ class SideNav extends Page { get sidebarWrap() { return browser.element('.sidebar-wrap'); } + get firstSidebarItem() { return browser.element('.sidebar-item'); } + get firstSidebarItemMenu() { return browser.element('.sidebar-item__menu'); } + get popoverOverlay() { return browser.element('.rc-popover.rc-popover--sidebar-item'); } + // Opens a channel via rooms list openChannel(channelName) { browser.waitForVisible(`.sidebar-item__ellipsis=${ channelName }`, 10000);