fix some tests

This commit is contained in:
Matteo Pagliazzi
2015-12-19 18:07:39 +01:00
parent ba22575e1a
commit 3e87c8d3e9
6 changed files with 101 additions and 106 deletions

View File

@@ -1,6 +1,7 @@
import { import {
createAndPopulateGroup, createAndPopulateGroup,
generateUser, generateUser,
generateGroup,
requester, requester,
} from '../../../../helpers/api-integration.helper'; } from '../../../../helpers/api-integration.helper';
@@ -8,8 +9,9 @@ describe('GET /groups/:groupId/chat', () => {
let user, api; let user, api;
before(() => { before(() => {
return generateUser().then((generatedUser) => { return generateUser({balance: 2}).then((generatedUser) => {
user = generatedUser; user = generatedUser;
console.log(user._id, user.balance)
api = requester(user); api = requester(user);
}); });
}); });
@@ -18,14 +20,15 @@ describe('GET /groups/:groupId/chat', () => {
let group; let group;
before(() => { before(() => {
return createAndPopulateGroup({groupDetails: { return generateGroup(user, {
name: 'test group',
type: 'guild', type: 'guild',
privacy: 'public', privacy: 'public',
chat: [ chat: [
'Hello', 'Hello',
'Welcome to the Guild', 'Welcome to the Guild',
], ],
}}) })
.then((createdGroup) => { .then((createdGroup) => {
group = createdGroup; group = createdGroup;
}); });

View File

@@ -16,8 +16,8 @@ describe('POST /group', () => {
context('Guilds', () => { context('Guilds', () => {
it('returns an error when a user with insufficient funds attempts to create a guild', () => { it('returns an error when a user with insufficient funds attempts to create a guild', () => {
let groupName = "Test Public Guild"; let groupName = 'Test Public Guild';
let groupType = "guild"; let groupType = 'guild';
return expect( return expect(
api.post('/groups', { api.post('/groups', {
@@ -34,14 +34,12 @@ describe('POST /group', () => {
context('public guild', () => { context('public guild', () => {
it('creates a group', () => { it('creates a group', () => {
let groupName = "Test Public Guild"; let groupName = 'Test Public Guild';
let groupType = "guild"; let groupType = 'guild';
let tmpUser;
return generateUser({balance: 1}).then((generatedUser) => { return generateUser({balance: 1}).then((generatedUser) => {
tmpUser = generatedUser; let api2 = requester(generatedUser);
api = requester(tmpUser); return api2.post('/groups', {
return api.post('/groups', {
name: groupName, name: groupName,
type: groupType type: groupType
}); });
@@ -50,24 +48,20 @@ describe('POST /group', () => {
expect(result._id).to.exist; expect(result._id).to.exist;
expect(result.name).to.equal(groupName); expect(result.name).to.equal(groupName);
expect(result.type).to.equal(groupType); expect(result.type).to.equal(groupType);
})
.then(() => {
api = requester(user);
}); });
}); });
}); });
context('private guild', () => { context('private guild', () => {
it('creates a group', () => { it('creates a group', () => {
let groupName = "Test Private Guild"; let groupName = 'Test Private Guild';
let groupType = "guild"; let groupType = 'guild';
let groupPrivacy = "private"; let groupPrivacy = 'private';
let tmpUser; let tmpUser;
return generateUser({balance: 1}).then((generatedUser) => { return generateUser({balance: 1}).then((generatedUser) => {
tmpUser = generatedUser; let api2 = requester(generatedUser);
api = requester(tmpUser); return api2.post('/groups', {
return api.post('/groups', {
name: groupName, name: groupName,
type: groupType, type: groupType,
privacy: groupPrivacy privacy: groupPrivacy
@@ -78,9 +72,6 @@ describe('POST /group', () => {
expect(result.name).to.equal(groupName); expect(result.name).to.equal(groupName);
expect(result.type).to.equal(groupType); expect(result.type).to.equal(groupType);
expect(result.privacy).to.equal(groupPrivacy); expect(result.privacy).to.equal(groupPrivacy);
})
.then(() => {
api = requester(tmpUser);
}); });
}); });
}); });

View File

@@ -103,15 +103,15 @@ export function generateUser (update = {}) {
// Generates a new group. Requires a user object, which // Generates a new group. Requires a user object, which
// will will become the groups leader. Takes an update // will will become the groups leader. Takes an update
// argument which will update group // argument which will update group
export function generateGroup (leader, update = {}) { export function generateGroup (leader, details = {}, update = {}) {
let request = _requestMaker(leader, 'post'); let request = _requestMaker(leader, 'post');
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
request('/groups').then((group) => { request('/groups', details).then((group) => {
_updateDocument('groups', group, update, () => { _updateDocument('groups', group, update, () => {
resolve(group); resolve(group);
}).catch(reject); }).catch(reject);
}); }).catch(reject);
}); });
} }

View File

@@ -8,7 +8,7 @@ import {
BadRequest, BadRequest,
NotAuthorized, NotAuthorized,
} from '../../libs/api-v3/errors'; } from '../../libs/api-v3/errors';
import firebase from '../../libs/api-v3/firebase'; import * as firebase from '../../libs/api-v3/firebase';
let api = {}; let api = {};
@@ -31,6 +31,7 @@ api.createGroup = {
group.leader = user._id; group.leader = user._id;
if (group.type === 'guild') { if (group.type === 'guild') {
console.log(user._id, user.balance)
if (user.balance < 1) return next(new NotAuthorized(res.t('messageInsufficientGems'))); if (user.balance < 1) return next(new NotAuthorized(res.t('messageInsufficientGems')));
group.balance = 1; group.balance = 1;

View File

@@ -4,7 +4,7 @@ import shared from '../../../common';
import _ from 'lodash'; import _ from 'lodash';
import { model as Challenge} from './challenge'; import { model as Challenge} from './challenge';
import validator from 'validator'; import validator from 'validator';
import firebase from '../libs/api-v2/firebase'; import * as firebase from '../libs/api-v2/firebase';
import baseModel from '../libs/api-v3/baseModel'; import baseModel from '../libs/api-v3/baseModel';
import Q from 'q'; import Q from 'q';

View File

@@ -477,7 +477,7 @@ export let schema = new Schema({
schema.plugin(baseModel, { schema.plugin(baseModel, {
// TODO revisit a lot of things are missing // TODO revisit a lot of things are missing
noSet: ['_id', 'apiToken', 'auth.blocked', 'auth.timestamps', 'lastCron', 'auth.local.hashed_password', 'auth.local.salt', 'tasksOrder', 'tags', 'stats', 'challenges', 'guilds', 'party._id', 'party.quest', 'invitations'], noSet: ['_id', 'apiToken', 'auth.blocked', 'auth.timestamps', 'lastCron', 'auth.local.hashed_password', 'auth.local.salt', 'tasksOrder', 'tags', 'stats', 'challenges', 'guilds', 'party._id', 'party.quest', 'invitations', 'balance'],
private: ['auth.local.hashed_password', 'auth.local.salt'], private: ['auth.local.hashed_password', 'auth.local.salt'],
toJSONTransform: function userToJSON (doc) { toJSONTransform: function userToJSON (doc) {
// FIXME? Is this a reference to `doc.filters` or just disabled code? Remove? // FIXME? Is this a reference to `doc.filters` or just disabled code? Remove?