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(['AppSelectController'], function() {
'use strict';

describe("The AppSelect Controller", function () {
var controller,
scope,
stateMock,
$modalMock,
globalDelayTrackerMock,
appSelectServiceMock,
$q,
rootScope,
pendingCount=0,
carouselServiceMock,
focusServiceMock,
userSessionServiceMock,
localStorageServiceMock = {
keys: [],
showModal: function () {}
},
sessionStorageServiceMock = {
keys: [],
showModal: function () {
}
},
mediaRequestTypesMock = {Image: 'IMAGE', Vieo: 'VIDEO'};

//Unit tests for showing the app tour carousel have not been done in anticipation of MTD-91 - Tour the App
beforeEach(function () {
module('angularTemplateApp');

stateMock = jasmine.createSpyObj('state', ['go']);
$modalMock = jasmine.createSpyObj('$modal', ['open']);
globalDelayTrackerMock = jasmine.createSpyObj('globalDelayTracker', ['active']);
appSelectServiceMock = jasmine.createSpyObj('appSelectService', ['fetchMediaRequestCounts']);
carouselServiceMock = jasmine.createSpyObj('carouselService', ['openModal']);
focusServiceMock = jasmine.createSpyObj('focusService', ['focusMain']);
userSessionServiceMock = jasmine.createSpyObj('userSessionService', ['fetch']);

appSelectServiceMock.fetchMediaRequestCounts.and.returnValue({
then: function (callback) {
callback(
pendingCount
);
}
});

userSessionServiceMock.fetch.and.returnValue({
then: function (callback) {
callback({});
}
});

spyOn(localStorage, 'getItem').and.callFake(function (key) {
return null;
});

spyOn(sessionStorage, 'getItem').and.callFake(function (key) {
return null;
});

module(function ($provide) {
$provide.value('$state', stateMock);
$provide.value('$modal', $modalMock);
$provide.value('globalDelayTracker', globalDelayTrackerMock);
$provide.value('appSelectService', appSelectServiceMock);
$provide.value('carouselService', carouselServiceMock);
$provide.value('focusService', focusServiceMock);
$provide.value('userSessionService', userSessionServiceMock);
$provide.value('localStorageService', localStorageServiceMock);
$provide.value('sessionStorageService', sessionStorageServiceMock);
$provide.value('mediaRequestTypes', mediaRequestTypesMock);
});

inject(function($controller, $rootScope, $state, globalDelayTracker, _$q_) {
scope = $rootScope.$new();
rootScope = $rootScope;
$q = _$q_;
controller = $controller;
});
});

describe("myTelederm function", function (){
it ("should navigate the user to the MyTelederm route", function() {
controller = controller('AppSelectController', {$scope: scope});
scope.myTelederm();
expect(stateMock.go).toHaveBeenCalledWith('main.mytelederm');
});
});

describe("myVideo function", function (){
it ("should navigate the user to the MyVideo route", function() {
controller = controller('AppSelectController', {$scope: scope});
scope.myVideo();
expect(stateMock.go).toHaveBeenCalledWith('main.myvideo');
});
});

describe("appSelectService.fetchMediaRequestCounts function", function (){
it ("should fetch the mediaRequests object and get the number of pending items", function() {
pendingCount = 4;
controller = controller('AppSelectController', {$scope: scope});
scope.$apply();
expect(scope.imageRequestsCount).toBe(4);
});
});

describe("appSelectService.fetchMediaRequestCounts fail function", function (){
it ("should fetch the mediaRequests object which has no pending items", function() {
pendingCount = 0;
controller = controller('AppSelectController', {$scope: scope});
scope.$apply();
expect(scope.imageRequestsCount).toBe(0);
});
});

describe("appSelectService.fetchMediaRequestCounts function", function (){
it ("should fetch the mediaRequests object and get the number of pending items", function() {
pendingCount = 3;
controller = controller('AppSelectController', {$scope: scope});
scope.$apply();
expect(scope.videoRequestsCount).toBe(3);
});
});

describe("appSelectService.fetchMediaRequestCounts fail function", function (){
it ("should fetch the mediaRequests object which has no pending items", function() {
pendingCount = 0;
controller = controller('AppSelectController', {$scope: scope});
scope.$apply();
expect(scope.videoRequestsCount).toBe(0);
});
});


it('should call openTourTheAppModal function if both local and storage sessions have not been set', function () {
spyOn(localStorageServiceMock, 'showModal').and.returnValue(true);
spyOn(sessionStorageServiceMock, 'showModal').and.returnValue(true);
controller = controller('AppSelectController', {$scope: scope});
expect(carouselServiceMock.openModal).toHaveBeenCalled();
});

it('should not call openTourTheAppModal function if session storage was set', function () {
spyOn(localStorageServiceMock, 'showModal').and.returnValue(false);
spyOn(sessionStorageServiceMock, 'showModal').and.returnValue(true);
controller = controller('AppSelectController', {$scope: scope});
expect(carouselServiceMock.openModal).not.toHaveBeenCalled();
});

it('should not call openTourTheAppModal function if local storage was set', function () {
spyOn(localStorageServiceMock, 'showModal').and.returnValue(true);
spyOn(sessionStorageServiceMock, 'showModal').and.returnValue(false);
controller = controller('AppSelectController', {$scope: scope});
expect(carouselServiceMock.openModal).not.toHaveBeenCalled();
});
});
});