diff --git a/test/spec/controllers/inviteToGroupCtrlSpec.js b/test/spec/controllers/inviteToGroupCtrlSpec.js index adff834143..b90c85c565 100644 --- a/test/spec/controllers/inviteToGroupCtrlSpec.js +++ b/test/spec/controllers/inviteToGroupCtrlSpec.js @@ -109,6 +109,20 @@ describe('Invite to Group Controller', function() { expect(scope.invitees).to.eql([{uuid: ''}]); }); + + it('removes blank fields from being sent', function() { + groups.Group.invite.yields(); + scope.invitees = [{uuid: 'user1'}, {uuid: ''}, {uuid: 'user3'}]; + + scope.inviteNewUsers('uuid'); + + expect(groups.Group.invite).to.be.calledOnce; + expect(groups.Group.invite).to.be.calledWith({ + gid: scope.group._id, + }, { + uuids: ['user1', 'user3'] + }); + }); }); context('invalid invite method', function() { diff --git a/website/public/js/controllers/inviteToGroupCtrl.js b/website/public/js/controllers/inviteToGroupCtrl.js index 0a5b5bd662..65129910d4 100644 --- a/website/public/js/controllers/inviteToGroupCtrl.js +++ b/website/public/js/controllers/inviteToGroupCtrl.js @@ -28,7 +28,7 @@ habitrpg.controller('InviteToGroupCtrl', ['$scope', 'User', 'Groups', 'injectedG }); } else if (inviteMethod === 'uuid') { - var uuids = _.pluck($scope.invitees, 'uuid'); + var uuids = _getOnlyUuids(); Groups.Group.invite({gid: $scope.group._id}, {uuids: uuids}, function(){ Notification.text(window.env.t('invitationsSent')); _resetInvitees(); @@ -41,6 +41,14 @@ habitrpg.controller('InviteToGroupCtrl', ['$scope', 'User', 'Groups', 'injectedG } } + function _getOnlyUuids() { + var uuids = _.pluck($scope.invitees, 'uuid'); + var filteredUuids = _.filter(uuids, function(id) { + return id != ''; + }); + return filteredUuids; + } + function _resetInvitees() { var emptyEmails = [{name:"",email:""},{name:"",email:""}]; var emptyInvitees = [{uuid: ''}];