Skip to content

Commit

Permalink
test(admin-projects): Remove artificial array mocks.
Browse files Browse the repository at this point in the history
Mocking up the array object in $scope.project.teamMembers was too artificial and would make the tests too brittle.
I now just set up the array manually.  I am allowed to do this because $scope.project.teamMembers is a public API of this controller - in the sense that it is used in the template as-is.
  • Loading branch information
petebacondarwin committed Nov 26, 2012
1 parent e24c422 commit 7b08d51
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions client/test/unit/app/admin/projects/admin-projectsSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,25 +56,27 @@ describe('admin projects', function () {
expect(params.users.filter).toHaveBeenCalled();
});
it('should push items into team members array in addTeamMember only if a team member is selected', function() {
var pushTeamMember = spyOn($scope.project.teamMembers,'push');
expect($scope.project.teamMembers.length).toBe(0);
$scope.addTeamMember();
expect(pushTeamMember).not.toHaveBeenCalled();
expect($scope.project.teamMembers.length).toBe(0);

$scope.selTeamMember = {};
var someTeamMember = {};
$scope.selTeamMember = someTeamMember;
$scope.addTeamMember();
expect(pushTeamMember).toHaveBeenCalled();
expect($scope.project.teamMembers.length).toBe(1);
expect($scope.project.teamMembers[0]).toBe(someTeamMember);
expect($scope.selTeamMember).toBeUndefined();
});
it('should remove the specified team member if it is in the team members array', function() {
var indexOfTeamMembers = spyOn($scope.project.teamMembers,'indexOf').andReturn(-1);
$scope.removeTeamMember();
expect(indexOfTeamMembers).toHaveBeenCalled();
it('should remove the specified team member only if it is in the team members array', function() {
var someTeamMember = {};
var otherTeamMember = {};
$scope.project.teamMembers.push(someTeamMember);
$scope.removeTeamMember(someTeamMember);
expect($scope.project.teamMembers.length).toBe(0);

indexOfTeamMembers.andReturn(0);
spliceTeamMembers = spyOn($scope.project.teamMembers,'splice');
$scope.removeTeamMember();
expect(indexOfTeamMembers).toHaveBeenCalled();
expect(spliceTeamMembers).toHaveBeenCalled();
$scope.project.teamMembers.push(someTeamMember);
$scope.removeTeamMember(otherTeamMember);
expect($scope.project.teamMembers.length).toBe(1);
});
});
});

0 comments on commit 7b08d51

Please sign in to comment.