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);