Project

General

Profile

Download (4.33 KB) Statistics
| Branch: | Tag: | Revision:
import $ from 'jquery';
import { init } from './foreman_navigation';

jest.unmock('./foreman_navigation');

describe('initNavigation', () => {
Object.defineProperty(window.location, 'pathname', {
writable: true,
value: '/locations/1/select',
});
const menuWithoutTaxonomies = `<div id="vertical-nav" class="nav-pf-vertical hover-secondary-nav-pf">
<ul class="list-group" >
<li class="list-group-item secondary-nav-item-pf"
data-target="location-secondary">
<a>
<span class="list-group-item-value"> Location </span>
</a>
<div id='location-secondary' class="nav-pf-secondary-nav">
<div class="nav-item-pf-header">
<a class="secondary-collapse-toggle-pf", data-toggle="collapse-secondary-nav" ></a>
<span>Location</span>
</div>
<ul class="list-group">
<li class="list-group-item"><a id="menu_item_Any_Location"
data-id="aid_locations_clear" href="/locations/clear">
<span class="list-group-item-value">Any Location</span></a></li>
<div class="divider"></div>
<li class="list-group-item"><a id="menu_item_loc1"
data-id="aid_locations_3_select"
href="/locations/1/select"><span class="list-group-item-value">
Loc1</span></a></li>
</ul>
</div>
</li>
<li class="list-group-item secondary-nav-item-pf"
data-target="organization-secondary">
<a>
<span class="list-group-item-value"> Organization </span>
</a>
<div id='organization-secondary' class="nav-pf-secondary-nav">
<div class="nav-item-pf-header">
<a class="secondary-collapse-toggle-pf", data-toggle="collapse-secondary-nav" ></a>
<span>Organization</span>
</div>
<ul class="list-group">
<li class="list-group-item"><a id="menu_item_Any_Organization"
data-id="aid_organizations_clear" href="/organizations/clear">
<span class="list-group-item-value">Any Organization</span></a></li>
<div class="divider"></div>
<li class="list-group-item"><a id="menu_item_org1"
data-id="aid_organizations_1_select"
href="/organizations/1/select"><span class="list-group-item-value">
Org1</span></a></li>
</ul>
</div>
</li>
</ul>
</div>
<div class="container-pf-nav-pf-vertical secondary-visible-pf"></div>`;

$.fn.setupVerticalNavigation = jest.fn();
document.body.innerHTML = `<div>
<li class="dropdown org-switcher" id="location-dropdown">
<a href="#" class="dropdown-toggle nav-item-iconic" data-toggle="dropdown" >
Loc1 <span class="caret"></span>
</a>
</li>
<li class="dropdown org-switcher" id="organization-dropdown">
<a href="#" class="dropdown-toggle nav-item-iconic" data-toggle="dropdown" >
Org1 <span class="caret"></span>
</a>
</li>
${menuWithoutTaxonomies}
</div>`;
it('Mark current location/organization as active in vertical menu', () => {
init();
expect($('.nav-pf-secondary-nav .list-group-item:contains("Loc1")').hasClass('active')).toBe(true);
expect($('.nav-pf-secondary-nav .list-group-item:contains("Org1")').hasClass('active')).toBe(true);
});

it('Mark main menu item as active', () => {
expect($('.secondary-nav-item-pf').hasClass('active')).toBe(true);
});

it('Should close secondary menu after menu item click', () => {
$('#menu_item_loc1').click();
expect($('#vertical-nav').hasClass('hover-secondary-nav-pf')).toBe(false);
expect($('.container-pf-nav-pf-vertical').hasClass('secondary-visible-pf')).toBe(false);
});

it('Should not set secondary menu as active when taxonomies are off', () => {
document.body.innerHTML = menuWithoutTaxonomies;
init();
expect($('.nav-pf-secondary-nav .list-group-item:contains("Loc1")').hasClass('active')).toBe(false);
expect($('.nav-pf-secondary-nav .list-group-item:contains("Org1")').hasClass('active')).toBe(false);
});
});
(19-19/30)