Created
January 21, 2014 20:22
-
-
Save xtbl/8547633 to your computer and use it in GitHub Desktop.
AngularJS unit test using $resource
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// verify you are not injecting 'ngMockE2E' for mock backend when working on unit tests | |
// and delete/comment mock backend stuff | |
// use httpBackend.flush() with $resource http://davidjs.com/2013/09/tricky-unit-testing-of-httpbackend/ | |
// http://blogs.burnsidedigital.com/2013/09/and-httpbackend-mock-for-all-unit-e2e-testings/ | |
describe( 'AppCtrl', function() { | |
describe( 'isCurrentUrl', function() { | |
var AppCtrl, $location, $scope; | |
var httpBackend; | |
var mockObj = {"employeeId":1,"userInfo":{"team":"BazaarVoice","supervisor":"Jorge Alfaro","skype":"JohnDoe mock","phone":"506-88-32-44-33","workstation":"Site-2 Desk 24 D", "email":"mockemail@gmail.com"},"wfhDays":{"mo":false,"tu":false,"we":true,"th":true,"fr":false},"performanceInfo":{"objectives":[{"number":1,"title":"Objective Title 1 fs","details":"Donec risus turpis, lacinia id purus in, feugiat ultrices nunc. Nam nec est euismod, facilisis diam et, dignissim felis. Proin luctus malesuada lacus."},{"number":2,"title":"Objective Title 2","details":"Donec risus turpis, lacinia id purus in, feugiat ultrices nunc. Nam nec est euismod, facilisis diam et, dignissim felis. Proin luctus malesuada lacus."},{"number":3,"title":"Objective Title 3","details":"Donec risus turpis, lacinia id purus in, feugiat ultrices nunc. Nam nec est euismod, facilisis diam et, dignissim felis. Proin luctus malesuada lacus."}],"skills":[{"type":"HTML","percentage":70,"description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."},{"type":"CSS","percentage":98,"description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."},{"type":"Ruby on Rails","percentage":98,"description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."},{"type":"SharePoint","percentage":30,"description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."}],"resolutions":[{"date":"08/04/13","description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."},{"date":"08/04/13","description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."},{"date":"08/04/13","description":"Phasellus eleifend vehicula justo, sed vehicula felis. Sed convallis lectus sit amet lectus lacinia porta. Cras a odio euismod, fermentum lorem eu, bibendum nibh."}]}}; | |
var mockProfile = {'name' : 'John','lastname' : 'Doe','picture' : 'http://dummyimage.com/50x50','email' : 'emailmock@growthaccelerationpartners.com'}; | |
beforeEach( module( 'gapCore' ) ); | |
beforeEach( module( 'gapCore.EmployeeService' ) ); | |
beforeEach( module( 'ProfileService' ) ); | |
beforeEach( inject( function( $controller, _$location_, $rootScope, $httpBackend ) { | |
$location = _$location_; | |
$scope = $rootScope.$new(); | |
httpBackend = $httpBackend; | |
httpBackend.when('GET','/profile?').respond(function(method, url, data){ | |
return [200, {"LOL":"test"}]; | |
}); | |
console.log('when GET /profile?'); | |
httpBackend.when('GET','/home/1').respond(function(method, url, data){ | |
return [200, mockObj]; | |
}); | |
AppCtrl = $controller( 'AppCtrl', { $location: $location, $scope: $scope }); | |
})); | |
afterEach(function() { | |
httpBackend.verifyNoOutstandingExpectation(); | |
httpBackend.verifyNoOutstandingRequest(); | |
}); | |
it( 'should pass a dummy test', inject( function() { | |
expect( AppCtrl ).toBeTruthy(); | |
})); | |
it('should get data from requests', function () { | |
httpBackend.expectGET('/profile?'); | |
httpBackend.expectGET('/home/1'); | |
$scope.getProfileEmployeeData(); | |
httpBackend.flush(); | |
expect($scope.profile).toBeDefined(); | |
console.log('employee', $scope.employee); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment