diff --git a/common/script/ops/sleep.js b/common/script/ops/sleep.js index e23ee22d8e..eb80ec9dd0 100644 --- a/common/script/ops/sleep.js +++ b/common/script/ops/sleep.js @@ -1,4 +1,8 @@ module.exports = function sleep (user) { user.preferences.sleep = !user.preferences.sleep; - return user.preferences.sleep; + return { + preferences: { + sleep: user.preferences.sleep, + }, + }; }; diff --git a/test/api/v3/integration/user/sleep.test.js b/test/api/v3/integration/user/sleep.test.js new file mode 100644 index 0000000000..8951d71f20 --- /dev/null +++ b/test/api/v3/integration/user/sleep.test.js @@ -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; + }); +}); diff --git a/test/common/ops/sleep.js b/test/common/ops/sleep.js index 57cca033b3..5466631f75 100644 --- a/test/common/ops/sleep.js +++ b/test/common/ops/sleep.js @@ -4,15 +4,15 @@ import { } from '../../helpers/common.helper'; describe('shared.ops.sleep', () => { - it('changes user.preferences.sleep and returns the new value', () => { + it('toggles user.preferences.sleep', () => { let user = generateUser(); let res = sleep(user); - expect(res).to.equal(true); + expect(res).to.eql({preferences: {sleep: true}}); expect(user.preferences.sleep).to.equal(true); let res2 = sleep(user); - expect(res2).to.equal(false); + expect(res2).to.eql({preferences: {sleep: false}}); expect(user.preferences.sleep).to.equal(false); }); }); diff --git a/website/src/controllers/api-v3/user.js b/website/src/controllers/api-v3/user.js index a2895c4759..f1a9ac49ff 100644 --- a/website/src/controllers/api-v3/user.js +++ b/website/src/controllers/api-v3/user.js @@ -293,12 +293,9 @@ api.sleep = { url: '/user/sleep', async handler (req, res) { let user = res.locals.user; - let sleepVal = sleep(user); - return res.respond(200, { - preferences: { - sleep: sleepVal, - }, - }); + let sleepRes = sleep(user); + await user.save(); + res.respond(200, sleepRes); }, };