blob: 8bb39787095625cfb41c94df7b5efaf0f145983a [file] [log] [blame]
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
import {mount} from 'enzyme';
import React from 'react';
import NavBar from '../components/NavBar';
describe('Navigation Bar', () => {
const defaultProps = {
isMinimized: true,
version: '',
username: '',
navLinks: [],
bottomNavLinks: [],
footerNavLinks: [],
isNavBarVisible: true,
isLoginSectionVisible: false,
isLoginVisibleInsteadOfLogout: true,
toggleNavbarMenu: () => {}
};
it('is displayed by default', () => {
const navbar = mount(<NavBar {...defaultProps}/>);
expect(navbar.find('.faux-navbar').length).toBe(1);
});
it('is dynamically displayed by isNavBarVisible', () => {
const navbar = mount(<NavBar
{...defaultProps}
isNavBarVisible={false}/>);
expect(navbar.find('.faux-navbar').length).toBe(0);
navbar.setProps({ isNavBarVisible: true });
navbar.update();
expect(navbar.find('.faux-navbar').length).toBe(1);
});
it('can display items with icon badge', () => {
const navLinks = [
{
href: "#/_with_badge",
title: "WithBadge",
icon: "fonticon-database",
badge: true
},
{
href: "#/_without_badge",
title: "WithoutBadge",
icon: "fonticon-database"
}
];
const navbar = mount(<NavBar
{...defaultProps}
navLinks={navLinks}/>);
expect(navbar.find('div[data-nav-name="WithoutBadge"] i.faux-navbar__icon-badge').length).toBe(0);
expect(navbar.find('div[data-nav-name="WithBadge"] i.faux-navbar__icon-badge').length).toBe(1);
});
});