Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

define(['navBar'], function() {
'use strict';

describe("Nav-Bar directive", function (){
var focusServiceMock,
innerWidthMock = 1,
scope,
isolated,
timeout,
buttonMock = null,
leftButtons = ["B1", "B2"],
rightButtons = ["B3", "B4"];

beforeEach(function () {
module('angularTemplateApp');

focusServiceMock = jasmine.createSpyObj('focusService', ['focusElement']);

module(function($provide){
$provide.value('focusService', focusServiceMock);
});

inject(function($compile, $rootScope, $templateCache, $timeout, $window, $state) {
var compiled,
element = angular.element("<nav-bar buttons='buttons' filter='filter'></nav-bar>");

scope = $rootScope.$new();
timeout = $timeout;
$window.innerWidth = innerWidthMock;
$state.current = {
name: "personal-trackers"
};

scope.buttons = buttonMock;
scope.filter = true;

$templateCache.put('modules/ui-components/nav-bar/nav-bar_template.html', '');

compiled = $compile(element)(scope);
scope.$digest();

isolated = compiled.isolateScope();
});
});

describe("variables", function () {
it ("should be correct (Scenario 1)", function() {
expect(isolated.collapseThreshold).toBe(false);
expect(isolated.status.toggleOpen).toBe(false);
expect(isolated.isFilterCollapsed).toEqual(false);
expect(isolated.buttons).toBe(null);
expect(isolated.filter).toBe(true);

buttonMock = {
left: [],
right: []
};
});

it ("should be correct (Scenario 2)", function() {
expect(isolated.collapseThreshold).toBe(false);
expect(isolated.status.toggleOpen).toBe(false);
expect(isolated.isFilterCollapsed).toEqual(false);
expect(isolated.buttons).toEqual({
left: [],
right: []
});
expect(isolated.filter).toBe(true);

buttonMock = {
left: leftButtons,
right: rightButtons
};
});

it ("should be correct (Scenario 3)", function() {
expect(isolated.collapseThreshold).toBe(true);
expect(isolated.status.toggleOpen).toBe(false);
expect(isolated.isFilterCollapsed).toEqual(false);
expect(isolated.buttons).toEqual({
left: leftButtons,
right: rightButtons
});
expect(isolated.filter).toBe(true);

buttonMock = {
left: [],
right: []
};
});
});

describe("functions", function () {
it("should watch buttons", function() {
expect(isolated.collapseThreshold).toBe(false);

isolated.buttons = {
left: leftButtons,
right: rightButtons
};

scope.$apply();

expect(isolated.collapseThreshold).toBe(true);

isolated.buttons = {
left: leftButtons,
right: rightButtons
};
});

it("should watch toggle", function() {
isolated.status.toggleOpen = true;

scope.$apply();

isolated.status.toggleOpen = false;

scope.$apply();
timeout.flush(300);

expect(focusServiceMock.focusElement).toHaveBeenCalledWith('button.dropdown-toggle')
});

it ("should determine if to collapse content (Scenario 1)", function() {
isolated.collapseThreshold = false;

expect(isolated.collapseButtons()).toBe(false);

isolated.collapseThreshold = true;

expect(isolated.collapseButtons()).toBe(true);

innerWidthMock = 1000;
});

it ("should determine if to collapse content (Scenario 2)", function() {
isolated.collapseThreshold = false;

expect(isolated.collapseButtons()).toBe(false);

isolated.collapseThreshold = true;

expect(isolated.collapseButtons()).toBe(false);
});

it ("should toggle collapsed content", function() {
expect(isolated.showCollapseContent()).toBe(true);

isolated.isFilterCollapsed = true;

expect(isolated.showCollapseContent()).toBe(false);
});

it ("should toggle filter state", function() {
expect(isolated.isFilterCollapsed).toBe(false);

isolated.toggleFilterState();

expect(isolated.isFilterCollapsed).toBe(true);

isolated.toggleFilterState();

expect(isolated.isFilterCollapsed).toBe(false);
});
});
});
});