mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 23:27:26 +01:00
Stub Q
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
var sinon = require('sinon');
|
var sinon = require('sinon');
|
||||||
var chai = require("chai")
|
var chai = require("chai");
|
||||||
chai.use(require("sinon-chai"))
|
chai.use(require('chai-as-promised'));
|
||||||
var expect = chai.expect
|
chai.use(require("sinon-chai"));
|
||||||
|
var expect = chai.expect;
|
||||||
|
|
||||||
|
var Q = require('q');
|
||||||
var groupsController = require('../../../website/src/controllers/groups');
|
var groupsController = require('../../../website/src/controllers/groups');
|
||||||
|
|
||||||
describe('Groups Controller', function() {
|
describe('Groups Controller', function() {
|
||||||
@@ -11,6 +13,9 @@ describe('Groups Controller', function() {
|
|||||||
var res, req, group, user, saveSpy;
|
var res, req, group, user, saveSpy;
|
||||||
|
|
||||||
beforeEach(function() {
|
beforeEach(function() {
|
||||||
|
sinon.stub(Q, 'all').returns({
|
||||||
|
done: sinon.stub().yields()
|
||||||
|
});
|
||||||
group = {
|
group = {
|
||||||
_id: 'group-id',
|
_id: 'group-id',
|
||||||
type: 'party',
|
type: 'party',
|
||||||
@@ -61,6 +66,10 @@ describe('Groups Controller', function() {
|
|||||||
req = { };
|
req = { };
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterEach(function() {
|
||||||
|
Q.all.restore();
|
||||||
|
});
|
||||||
|
|
||||||
context('error conditions', function() {
|
context('error conditions', function() {
|
||||||
it('errors if quest is not active', function() {
|
it('errors if quest is not active', function() {
|
||||||
group.quest.active = false;
|
group.quest.active = false;
|
||||||
@@ -99,11 +108,14 @@ describe('Groups Controller', function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('sends 500 if group cannot save', function() {
|
it('sends 500 if group cannot save', function() {
|
||||||
group.save = sinon.stub().throws({err: 'save error'});
|
Q.all.returns({
|
||||||
|
done: sinon.stub().callsArgWith(1, {err: 'save error'})
|
||||||
|
});
|
||||||
var nextSpy = sinon.spy();
|
var nextSpy = sinon.spy();
|
||||||
|
|
||||||
groupsController.questLeave(req, res, nextSpy);
|
groupsController.questLeave(req, res, nextSpy);
|
||||||
|
|
||||||
|
expect(res.json).to.not.be.called;
|
||||||
expect(nextSpy).to.be.calledOnce;
|
expect(nextSpy).to.be.calledOnce;
|
||||||
expect(nextSpy).to.be.calledWith({err: 'save error'});
|
expect(nextSpy).to.be.calledWith({err: 'save error'});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user