Skip to content

Instantly share code, notes, and snippets.

@xtbl
Created January 21, 2014 20:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xtbl/8547633 to your computer and use it in GitHub Desktop.
Save xtbl/8547633 to your computer and use it in GitHub Desktop.
AngularJS unit test using $resource
// 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