Skip to content
This repository has been archived by the owner on Jan 17, 2024. It is now read-only.

Commit

Permalink
Merge pull request #155 from AppliedIS/service-tests
Browse files Browse the repository at this point in the history
add test coverage
  • Loading branch information
jefferey committed Nov 17, 2016
2 parents 457887f + dadba2f commit 6f04901
Show file tree
Hide file tree
Showing 2 changed files with 202 additions and 11 deletions.
126 changes: 125 additions & 1 deletion DOL.WHD.Section14c.Web/src/modules/services/authService.test.js
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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');
});
});
87 changes: 77 additions & 10 deletions DOL.WHD.Section14c.Web/src/modules/services/stateService.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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');
});
});

0 comments on commit 6f04901

Please sign in to comment.