import { setHTMLFixture } from 'helpers/fixtures'; import { initSidebarTracking } from '~/pages/shared/nav/sidebar_tracking'; describe('~/pages/shared/nav/sidebar_tracking.js', () => { beforeEach(() => { setHTMLFixture(` `); initSidebarTracking(); }); describe('sidebar is not collapsed', () => { describe('menu is not expanded', () => { it('sets the proper data tracking attributes when clicking on menu', () => { const menu = document.querySelector('li[data-track-label="project_information_menu"]'); const menuLink = menu.querySelector('a'); menu.classList.add('is-over', 'is-showing-fly-out'); menuLink.click(); expect(menu.dataset).toMatchObject({ trackAction: 'click_menu', trackExtra: JSON.stringify({ sidebar_display: 'Expanded', menu_display: 'Fly out', }), }); }); it('sets the proper data tracking attributes when clicking on submenu', () => { const menu = document.querySelector('li[data-track-label="activity"]'); const menuLink = menu.querySelector('a'); const submenuList = document.querySelector('ul.sidebar-sub-level-items'); submenuList.classList.add('fly-out-list'); menuLink.click(); expect(menu.dataset).toMatchObject({ trackAction: 'click_menu_item', trackExtra: JSON.stringify({ sidebar_display: 'Expanded', menu_display: 'Fly out', }), }); }); }); describe('menu is expanded', () => { it('sets the proper data tracking attributes when clicking on menu', () => { const menu = document.querySelector('li[data-track-label="project_information_menu"]'); const menuLink = menu.querySelector('a'); menu.classList.add('active'); menuLink.click(); expect(menu.dataset).toMatchObject({ trackAction: 'click_menu', trackExtra: JSON.stringify({ sidebar_display: 'Expanded', menu_display: 'Expanded', }), }); }); it('sets the proper data tracking attributes when clicking on submenu', () => { const menu = document.querySelector('li[data-track-label="activity"]'); const menuLink = menu.querySelector('a'); menu.classList.add('active'); menuLink.click(); expect(menu.dataset).toMatchObject({ trackAction: 'click_menu_item', trackExtra: JSON.stringify({ sidebar_display: 'Expanded', menu_display: 'Expanded', }), }); }); }); }); describe('sidebar is collapsed', () => { beforeEach(() => { document.querySelector('aside.nav-sidebar').classList.add('js-sidebar-collapsed'); }); it('sets the proper data tracking attributes when clicking on menu', () => { const menu = document.querySelector('li[data-track-label="project_information_menu"]'); const menuLink = menu.querySelector('a'); menu.classList.add('is-over', 'is-showing-fly-out'); menuLink.click(); expect(menu.dataset).toMatchObject({ trackAction: 'click_menu', trackExtra: JSON.stringify({ sidebar_display: 'Collapsed', menu_display: 'Fly out', }), }); }); it('sets the proper data tracking attributes when clicking on submenu', () => { const menu = document.querySelector('li[data-track-label="activity"]'); const menuLink = menu.querySelector('a'); const submenuList = document.querySelector('ul.sidebar-sub-level-items'); submenuList.classList.add('fly-out-list'); menuLink.click(); expect(menu.dataset).toMatchObject({ trackAction: 'click_menu_item', trackExtra: JSON.stringify({ sidebar_display: 'Collapsed', menu_display: 'Fly out', }), }); }); }); });