From 237be08a619aa655b7f247dbf24e0c643a81e7da Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Mon, 7 Dec 2015 21:15:02 +0100 Subject: [PATCH] GET-tasks_id tests --- .../v3/integration/tasks/GET-tasks_id.test.js | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/test/api/v3/integration/tasks/GET-tasks_id.test.js b/test/api/v3/integration/tasks/GET-tasks_id.test.js index 6c6c722703..4e69788c6c 100644 --- a/test/api/v3/integration/tasks/GET-tasks_id.test.js +++ b/test/api/v3/integration/tasks/GET-tasks_id.test.js @@ -3,6 +3,7 @@ import { requester, translate as t, } from '../../../../helpers/api-integration.helper'; +import { v4 as generateUUID } from 'uuid'; describe('GET /tasks/:id', () => { let user, api; @@ -18,18 +19,51 @@ describe('GET /tasks/:id', () => { let task; beforeEach(() => { - // generate task - // task = generatedTask; + return api.post('/tasks', { + text: 'test habit', + type: 'habit', + }).then((createdTask) => { + task = createdTask; + }); }); - it('gets specified task'); + it('gets specified task', () => { + return api.get('/tasks/' + task._id) + .then((getTask) => { + expect(getTask).to.eql(task); + }); + }); + // TODO after challenges are implemented it('can get active challenge task that user does not own'); // Yes? }); context('task cannot accessed', () => { - it('cannot get a non-existant task'); + it('cannot get a non-existant task', () => { + return expect(api.get('/tasks/' + generateUUID())).to.eventually.be.rejected.and.eql({ + code: 404, + error: 'NotFound', + message: t('taskNotFound'), + }); + }); - it('cannot get a task owned by someone else'); + it('cannot get a task owned by someone else', () => { + let api2; + + return generateUser() + .then((user2) => { + api2 = requester(user2); + return api.post('/tasks', { + text: 'test habit', + type: 'habit', + }) + }).then((task) => { + return expect(api2.get('/tasks/' + task._id)).to.eventually.be.rejected.and.eql({ + code: 404, + error: 'NotFound', + message: t('taskNotFound'), + }); + }); + }); }); });