change response for shared.ops.sleep, save user in POST /user/sleep and add integration tests for it

This commit is contained in:
Matteo Pagliazzi
2016-03-15 17:05:07 +01:00
parent 490c6a9ae1
commit b2b4340ee3
4 changed files with 38 additions and 10 deletions

View File

@@ -1,4 +1,8 @@
module.exports = function sleep (user) { module.exports = function sleep (user) {
user.preferences.sleep = !user.preferences.sleep; user.preferences.sleep = !user.preferences.sleep;
return user.preferences.sleep; return {
preferences: {
sleep: user.preferences.sleep,
},
};
}; };

View File

@@ -0,0 +1,27 @@
import {
generateUser,
} from '../../../../helpers/api-integration/v3';
describe('POST /user/sleep', () => {
let user;
beforeEach(async () => {
user = await generateUser();
});
it('toggles sleep status', async () => {
let res = await user.post(`/user/sleep`);
expect(res).to.eql({
preferences: {sleep: true},
});
await user.sync();
expect(user.preferences.sleep).to.be.true;
let res2 = await user.post(`/user/sleep`);
expect(res2).to.eql({
preferences: {sleep: false},
});
await user.sync();
expect(user.preferences.sleep).to.be.false;
});
});

View File

@@ -4,15 +4,15 @@ import {
} from '../../helpers/common.helper'; } from '../../helpers/common.helper';
describe('shared.ops.sleep', () => { describe('shared.ops.sleep', () => {
it('changes user.preferences.sleep and returns the new value', () => { it('toggles user.preferences.sleep', () => {
let user = generateUser(); let user = generateUser();
let res = sleep(user); let res = sleep(user);
expect(res).to.equal(true); expect(res).to.eql({preferences: {sleep: true}});
expect(user.preferences.sleep).to.equal(true); expect(user.preferences.sleep).to.equal(true);
let res2 = sleep(user); let res2 = sleep(user);
expect(res2).to.equal(false); expect(res2).to.eql({preferences: {sleep: false}});
expect(user.preferences.sleep).to.equal(false); expect(user.preferences.sleep).to.equal(false);
}); });
}); });

View File

@@ -293,12 +293,9 @@ api.sleep = {
url: '/user/sleep', url: '/user/sleep',
async handler (req, res) { async handler (req, res) {
let user = res.locals.user; let user = res.locals.user;
let sleepVal = sleep(user); let sleepRes = sleep(user);
return res.respond(200, { await user.save();
preferences: { res.respond(200, sleepRes);
sleep: sleepVal,
},
});
}, },
}; };