mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 22:57:21 +01:00
Simplify qroup service quest functions
This commit is contained in:
@@ -41,110 +41,65 @@ describe('groupServices', function() {
|
||||
});
|
||||
|
||||
context('quest function wrappers', function() {
|
||||
var successPromise = function() {
|
||||
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
|
||||
}
|
||||
var successPromise, failPromise;
|
||||
|
||||
beforeEach(function() {
|
||||
sandbox.spy(user, 'sync');
|
||||
sandbox.stub(console, 'log');
|
||||
});
|
||||
|
||||
describe('questAccept', function() {
|
||||
it('syncs user if $questAccept succeeds', function() {
|
||||
groups.questAccept(successParty);
|
||||
user.sync.should.have.been.calledOnce;
|
||||
successPromise = sandbox.stub().returns({
|
||||
then: function(success, failure) {
|
||||
return success();
|
||||
}
|
||||
});
|
||||
|
||||
it('does not sync user if $questAccept fails', function() {
|
||||
groups.questAccept(failParty);
|
||||
user.sync.should.not.have.been.calledOnce;
|
||||
console.log.should.have.been.calledWith('fail');
|
||||
failPromise = sandbox.stub().returns({
|
||||
then: function(success, failure) {
|
||||
return failure('fail');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('questReject', function() {
|
||||
it('syncs user if $questReject succeeds', function() {
|
||||
groups.questReject(successParty);
|
||||
user.sync.should.have.been.calledOnce;
|
||||
console.log.should.not.have.been.called;
|
||||
});
|
||||
var questFunctions = [
|
||||
'questAccept',
|
||||
'questReject',
|
||||
'questCancel',
|
||||
'questAbort',
|
||||
'questLeave'
|
||||
];
|
||||
|
||||
it('does not sync user if $questReject fails', function() {
|
||||
groups.questReject(failParty);
|
||||
user.sync.should.not.have.been.calledOnce;
|
||||
console.log.should.have.been.calledWith('fail');
|
||||
});
|
||||
});
|
||||
for (var i in questFunctions) {
|
||||
var questFunc = questFunctions[i];
|
||||
|
||||
describe('questCancel', function() {
|
||||
it('syncs user if $questCancel succeeds', function() {
|
||||
groups.questCancel(successParty);
|
||||
user.sync.should.have.been.calledOnce;
|
||||
console.log.should.not.have.been.called;
|
||||
});
|
||||
describe('#' + questFunc, function() {
|
||||
it('calls party.$' + questFunc, function() {
|
||||
var party = { };
|
||||
party['$' + questFunc] = successPromise;
|
||||
|
||||
it('does not sync user if $questCancel fails', function() {
|
||||
groups.questCancel(failParty);
|
||||
user.sync.should.not.have.been.calledOnce;
|
||||
console.log.should.have.been.calledWith('fail');
|
||||
});
|
||||
});
|
||||
groups[questFunc](party);
|
||||
|
||||
describe('questAbort', function() {
|
||||
it('syncs user if $questAbort succeeds', function() {
|
||||
groups.questAbort(successParty);
|
||||
user.sync.should.have.been.calledOnce;
|
||||
console.log.should.not.have.been.called;
|
||||
});
|
||||
expect(party['$' + questFunc]).to.be.calledOnce;
|
||||
});
|
||||
|
||||
it('does not sync user if $questAbort fails', function() {
|
||||
groups.questAbort(failParty);
|
||||
user.sync.should.not.have.been.calledOnce;
|
||||
console.log.should.have.been.calledWith('fail');
|
||||
});
|
||||
});
|
||||
it('syncs user if $' + questFunc + ' succeeds', function() {
|
||||
var successParty = { };
|
||||
successParty['$' + questFunc] = successPromise;
|
||||
|
||||
describe('questLeave', function() {
|
||||
it('syncs user if $questLeave succeeds', function() {
|
||||
groups.questLeave(successParty);
|
||||
user.sync.should.have.been.calledOnce;
|
||||
console.log.should.not.have.been.called;
|
||||
});
|
||||
groups[questFunc](successParty);
|
||||
|
||||
it('does not sync user if $questLeave fails', function() {
|
||||
groups.questLeave(failParty);
|
||||
user.sync.should.not.have.been.calledOnce;
|
||||
console.log.should.have.been.calledWith('fail');
|
||||
user.sync.should.have.been.calledOnce;
|
||||
});
|
||||
|
||||
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