mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
Simplify qroup service quest functions
This commit is contained in:
@@ -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');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user