From dadba2fba4b49c1d664211d2d1aed425ac0ea9df Mon Sep 17 00:00:00 2001 From: Kyle Linden Date: Thu, 17 Nov 2016 16:37:24 -0500 Subject: [PATCH] add test coverage --- .../src/modules/services/authService.test.js | 126 +++++++++++++++++- .../src/modules/services/stateService.test.js | 87 ++++++++++-- 2 files changed, 202 insertions(+), 11 deletions(-) diff --git a/DOL.WHD.Section14c.Web/src/modules/services/authService.test.js b/DOL.WHD.Section14c.Web/src/modules/services/authService.test.js index b0e0e7ff..a155e6be 100644 --- a/DOL.WHD.Section14c.Web/src/modules/services/authService.test.js +++ b/DOL.WHD.Section14c.Web/src/modules/services/authService.test.js @@ -1,11 +1,13 @@ describe('authService', function() { beforeEach(module('14c')); - beforeEach(inject(function(_$httpBackend_, _authService_, __env_, _stateService_) { + beforeEach(inject(function(_$httpBackend_, _authService_, __env_, _stateService_, _$q_, _$rootScope_) { authService = _authService_; $httpBackend = _$httpBackend_; stateService = _stateService_; env = __env_; + $q = _$q_; + $rootScope = _$rootScope_; })); //userLogin @@ -22,4 +24,126 @@ describe('authService', function() { expect(isResolved).toEqual(false); expect(result).toEqual('value'); }); + + it('userLogin error should reject deferred if authenticateUser fails', function() { + var isResolved; + var result; + var authenticateUser = $q.defer(); + spyOn(authService, 'authenticateUser').and.returnValue(authenticateUser.promise); + authService.userLogin().then(undefined, function (error) { + result = error; + isResolved = false; + }); + + $httpBackend.expectPOST(env.api_url + '/Token').respond(200, 'value'); + $httpBackend.flush(); + authenticateUser.reject('error'); + $rootScope.$digest(); + expect(isResolved).toEqual(false); + expect(result).toEqual('error'); + }); + + it('userLogin error should resolve deferred', function() { + var isResolved; + var authenticateUser = $q.defer(); + spyOn(authService, 'authenticateUser').and.returnValue(authenticateUser.promise); + authService.userLogin().then(function () { + isResolved = true; + }); + + $httpBackend.expectPOST(env.api_url + '/Token').respond(200, 'value'); + $httpBackend.flush(); + authenticateUser.resolve(); + $rootScope.$digest(); + expect(isResolved).toEqual(true); + }); + + it('authenticateUser should reject deferred', function() { + var isResolved; + var result; + authService.authenticateUser().then(undefined, function (error) { + result = error.data; + isResolved = false; + }); + + $httpBackend.expectGET(env.api_url + '/api/Account/UserInfo').respond(400, 'value'); + $httpBackend.flush(); + expect(isResolved).toEqual(false); + expect(result).toEqual('value'); + }); + + it('authenticateUser error should resolve deferred non admin', function() { + var isResolved; + var data = { organizations: [ {ein: '12-1234567'}] }; + var loadSavedApplication = $q.defer(); + spyOn(stateService, 'loadSavedApplication').and.returnValue(loadSavedApplication.promise); + authService.authenticateUser().then(function () { + isResolved = true; + }); + + $httpBackend.expectGET(env.api_url + '/api/Account/UserInfo').respond(200, data); + $httpBackend.flush(); + loadSavedApplication.resolve(); + $rootScope.$digest(); + expect(isResolved).toEqual(true); + expect(stateService.loggedIn).toEqual(true); + expect(stateService.user).toEqual(data); + expect(stateService.ein).toEqual('12-1234567'); + }); + + it('authenticateUser error should resolve deferred admin', function() { + var isResolved; + var data = { organizations: [ {ein: '12-1234567'}], applicationClaims: [ "DOL.WHD.Section14c.Application.ViewAdminUI" ] }; + var loadApplicationList = $q.defer(); + spyOn(stateService, 'loadApplicationList').and.returnValue(loadApplicationList.promise); + authService.authenticateUser().then(function () { + isResolved = true; + }); + + $httpBackend.expectGET(env.api_url + '/api/Account/UserInfo').respond(200, data); + $httpBackend.flush(); + loadApplicationList.resolve(); + $rootScope.$digest(); + expect(isResolved).toEqual(true); + expect(stateService.loggedIn).toEqual(true); + expect(stateService.user).toEqual(data); + }); + + it('authenticateUser error should reject deferred non admin', function() { + var result; + var isResolved; + var data = { organizations: [ {ein: '12-1234567'}] }; + var loadSavedApplication = $q.defer(); + spyOn(stateService, 'loadSavedApplication').and.returnValue(loadSavedApplication.promise); + authService.authenticateUser().then(undefined, function (error) { + result = error; + isResolved = false; + }); + + $httpBackend.expectGET(env.api_url + '/api/Account/UserInfo').respond(200, data); + $httpBackend.flush(); + loadSavedApplication.reject('error'); + $rootScope.$digest(); + expect(isResolved).toEqual(false); + expect(result).toEqual('error'); + }); + + it('authenticateUser error should reject deferred admin', function() { + var result; + var isResolved; + var data = { organizations: [ {ein: '12-1234567'}], applicationClaims: [ "DOL.WHD.Section14c.Application.ViewAdminUI" ] }; + var loadApplicationList = $q.defer(); + spyOn(stateService, 'loadApplicationList').and.returnValue(loadApplicationList.promise); + authService.authenticateUser().then(undefined, function (error) { + result = error; + isResolved = false; + }); + + $httpBackend.expectGET(env.api_url + '/api/Account/UserInfo').respond(200, data); + $httpBackend.flush(); + loadApplicationList.reject('error'); + $rootScope.$digest(); + expect(isResolved).toEqual(false); + expect(result).toEqual('error'); + }); }); \ No newline at end of file diff --git a/DOL.WHD.Section14c.Web/src/modules/services/stateService.test.js b/DOL.WHD.Section14c.Web/src/modules/services/stateService.test.js index 61eff00c..00a1a1a4 100644 --- a/DOL.WHD.Section14c.Web/src/modules/services/stateService.test.js +++ b/DOL.WHD.Section14c.Web/src/modules/services/stateService.test.js @@ -8,8 +8,12 @@ describe('stateService', function() { apiService = _apiService_; $q = _$q_; getApplication = $q.defer(); - $scope = _$rootScope_.$new(); + getSubmittedApplication = $q.defer(); + getSubmittedApplications = $q.defer(); + $rootScope = _$rootScope_; spyOn(apiService, 'getApplication').and.returnValue(getApplication.promise); + spyOn(apiService, 'getSubmittedApplication').and.returnValue(getSubmittedApplication.promise); + spyOn(apiService, 'getSubmittedApplications').and.returnValue(getSubmittedApplications.promise); })); it('should set form data', function() { @@ -56,18 +60,81 @@ describe('stateService', function() { it('should load user info and application data', function() { stateService.loadSavedApplication(); - getApplication.resolve({data: '{}'}); - $scope.$digest(); + getApplication.resolve({ data: '{ "applicationTypeId": 1 }' }); + $rootScope.$digest(); - //TODO: Add asseritions + expect(stateService.formData.applicationTypeId).toEqual(1); }); it('should load user info and fail on application data', function() { - stateService.loadSavedApplication(); - getApplication.reject(); - $scope.$digest(); + var result; + var isResolved; + stateService.loadSavedApplication().then(undefined, function(error) { + result = error; + isResolved = false; + }); + getApplication.reject('error'); + $rootScope.$digest(); - //TODO: Add asseritions - }); - + expect(result).toEqual('error'); + expect(isResolved).toEqual(false); + }); + + it('should load submitted application data', function() { + var result; + var isResolved; + var data = { data: '{ "applicationTypeId": 1 }' }; + stateService.loadApplicationData().then(function(data) { + isResolved = true; + result = data; + }); + getSubmittedApplication.resolve(data); + $rootScope.$digest(); + + expect(isResolved).toEqual(true); + expect(result).toEqual(data.data); + }); + + it('should fail loading submitted application data', function() { + var result; + var isResolved; + stateService.loadApplicationData().then(undefined, function(error) { + isResolved = false; + result = error; + }); + getSubmittedApplication.reject('error'); + $rootScope.$digest(); + + expect(isResolved).toEqual(false); + expect(result).toEqual('error'); + }); + + it('should load application list', function() { + var result; + var isResolved; + var data = { data: '[{ "applicationTypeId": 1 }]' }; + stateService.loadApplicationList().then(function(data) { + isResolved = true; + result = data; + }); + getSubmittedApplications.resolve(data); + $rootScope.$digest(); + + expect(isResolved).toEqual(true); + expect(result).toEqual(data.data); + }); + + it('should fail loading application list', function() { + var result; + var isResolved; + stateService.loadApplicationList().then(undefined, function(error) { + isResolved = false; + result = error; + }); + getSubmittedApplications.reject('error'); + $rootScope.$digest(); + + expect(isResolved).toEqual(false); + expect(result).toEqual('error'); + }); });