Simplify qroup service quest functions

This commit is contained in:
Blade Barringer
2015-08-24 08:06:34 -05:00
parent 928a54911a
commit af20986fbc

View File

@@ -41,110 +41,65 @@ describe('groupServices', function() {
}); });
context('quest function wrappers', function() { context('quest function wrappers', function() {
var successPromise = function() { var successPromise, failPromise;
return {
then: function(success, failure) {
success();
}
}
}
var successParty = {
$questAccept: successPromise,
$questReject: successPromise,
$questCancel: successPromise,
$questAbort: successPromise,
$questLeave: successPromise
}
var failPromise = function() {
return {
then: function(success, failure) {
failure('fail');
}
}
}
var failParty = {
$questAccept: failPromise,
$questReject: failPromise,
$questCancel: failPromise,
$questAbort: failPromise,
$questLeave: failPromise
}
beforeEach(function() { beforeEach(function() {
sandbox.spy(user, 'sync'); sandbox.spy(user, 'sync');
sandbox.stub(console, 'log'); sandbox.stub(console, 'log');
});
describe('questAccept', function() { successPromise = sandbox.stub().returns({
it('syncs user if $questAccept succeeds', function() { then: function(success, failure) {
groups.questAccept(successParty); return success();
user.sync.should.have.been.calledOnce; }
}); });
it('does not sync user if $questAccept fails', function() { failPromise = sandbox.stub().returns({
groups.questAccept(failParty); then: function(success, failure) {
user.sync.should.not.have.been.calledOnce; return failure('fail');
console.log.should.have.been.calledWith('fail'); }
}); });
}); });
describe('questReject', function() { var questFunctions = [
it('syncs user if $questReject succeeds', function() { 'questAccept',
groups.questReject(successParty); 'questReject',
user.sync.should.have.been.calledOnce; 'questCancel',
console.log.should.not.have.been.called; 'questAbort',
}); 'questLeave'
];
it('does not sync user if $questReject fails', function() { for (var i in questFunctions) {
groups.questReject(failParty); var questFunc = questFunctions[i];
user.sync.should.not.have.been.calledOnce;
console.log.should.have.been.calledWith('fail');
});
});
describe('questCancel', function() { describe('#' + questFunc, function() {
it('syncs user if $questCancel succeeds', function() { it('calls party.$' + questFunc, function() {
groups.questCancel(successParty); var party = { };
user.sync.should.have.been.calledOnce; party['$' + questFunc] = successPromise;
console.log.should.not.have.been.called;
});
it('does not sync user if $questCancel fails', function() { groups[questFunc](party);
groups.questCancel(failParty);
user.sync.should.not.have.been.calledOnce;
console.log.should.have.been.calledWith('fail');
});
});
describe('questAbort', function() { expect(party['$' + questFunc]).to.be.calledOnce;
it('syncs user if $questAbort succeeds', function() { });
groups.questAbort(successParty);
user.sync.should.have.been.calledOnce;
console.log.should.not.have.been.called;
});
it('does not sync user if $questAbort fails', function() { it('syncs user if $' + questFunc + ' succeeds', function() {
groups.questAbort(failParty); var successParty = { };
user.sync.should.not.have.been.calledOnce; successParty['$' + questFunc] = successPromise;
console.log.should.have.been.calledWith('fail');
});
});
describe('questLeave', function() { groups[questFunc](successParty);
it('syncs user if $questLeave succeeds', function() {
groups.questLeave(successParty);
user.sync.should.have.been.calledOnce;
console.log.should.not.have.been.called;
});
it('does not sync user if $questLeave fails', function() { user.sync.should.have.been.calledOnce;
groups.questLeave(failParty); });
user.sync.should.not.have.been.calledOnce;
console.log.should.have.been.calledWith('fail'); it('does not sync user if $' + questFunc + ' fails', function() {
var failParty = { };
failParty['$' + questFunc] = failPromise;
groups[questFunc](failParty);
user.sync.should.not.have.been.calledOnce;
console.log.should.have.been.calledWith('fail');
});
}); });
}); }
}); });
}); });