import { generateUser, translate as t, } from '../../../../helpers/api-integration/v2'; describe('POST /user/tasks', () => { let user; beforeEach(async () => { user = await generateUser(); }); it('creates a task', async () => { return user.post('/user/tasks').then((task) => { expect(task.id).to.exist; }); }); it('creates a habit by default', async () => { return expect(user.post('/user/tasks')) .to.eventually.have.property('type', 'habit'); }); it('creates a task with specified values', async () => { return user.post('/user/tasks', { type: 'daily', text: 'My task', notes: 'My notes', frequency: 'daily', }).then((task) => { expect(task.type).to.eql('daily'); expect(task.text).to.eql('My task'); expect(task.notes).to.eql('My notes'); expect(task.frequency).to.eql('daily'); }); }); xit('does not create a task with an id that already exists', async () => { let todo = user.todos[0]; return expect(user.post('/user/tasks', { id: todo.id, })).to.eventually.be.rejected.and.eql({ code: 409, text: t('messageDuplicateTaskID'), }); }); xit('TODO: no error is thrown - throws a 500 validation error if invalid type is posted', async () => { return expect(user.post('/user/tasks', { type: 'not-valid', })).to.eventually.be.rejected.and.eql({ code: 500, text: 'Cannot call method \'indexOf\' of undefined', }); }); xit('TODO: no error is thrown - throws a 500 validation error if invalid data is posted', async () => { return expect(user.post('/user/tasks', { frequency: 'not-valid', })).to.eventually.be.rejected.and.eql({ code: 500, text: 'Task validation failed', }); }); });