Api v3 Migration (WIP) (#7131)

* v3 migration: remove old code and polish user migration

* v3 migration: start to work on challenges

* wip v3 migration

* wip v3 migration: fix _id -> id for reminders, tags and checklists
This commit is contained in:
Matteo Pagliazzi
2016-04-30 18:34:16 +02:00
parent f69a566178
commit 6380161321
24 changed files with 350 additions and 203 deletions

View File

@@ -14,7 +14,7 @@ describe('DELETE /tags/:tagId', () => {
let tag = await user.post('/tags', {name: tagName});
let numberOfTags = (await user.get('/tags')).length;
await user.del(`/tags/${tag._id}`);
await user.del(`/tags/${tag.id}`);
let tags = await user.get('/tags');
let tagNames = tags.map((t) => {

View File

@@ -11,7 +11,7 @@ describe('GET /tags/:tagId', () => {
it('returns a tag given it\'s id', async () => {
let createdTag = await user.post('/tags', {name: 'Tag 1'});
let tag = await user.get(`/tags/${createdTag._id}`);
let tag = await user.get(`/tags/${createdTag.id}`);
expect(tag).to.deep.equal(createdTag);
});

View File

@@ -16,7 +16,7 @@ describe('POST /tags', () => {
ignored: false,
});
let tag = await user.get(`/tags/${createdTag._id}`);
let tag = await user.get(`/tags/${createdTag.id}`);
expect(tag.name).to.equal(tagName);
expect(tag.ignored).to.not.exist;

View File

@@ -12,12 +12,12 @@ describe('PUT /tags/:tagId', () => {
it('updates a tag given it\'s id', async () => {
let updatedTagName = 'Tag updated';
let createdTag = await user.post('/tags', {name: 'Tag 1'});
let updatedTag = await user.put(`/tags/${createdTag._id}`, {
let updatedTag = await user.put(`/tags/${createdTag.id}`, {
name: updatedTagName,
ignored: true,
});
createdTag = await user.get(`/tags/${updatedTag._id}`);
createdTag = await user.get(`/tags/${updatedTag.id}`);
expect(updatedTag.name).to.equal(updatedTagName);
expect(updatedTag.ignored).to.not.exist;

View File

@@ -154,14 +154,14 @@ describe('POST /tasks/user', () => {
text: 'test habit',
type: 'habit',
reminders: [
{_id: id1, startDate: new Date(), time: new Date()},
{id: id1, startDate: new Date(), time: new Date()},
],
});
expect(task.reminders).to.be.an('array');
expect(task.reminders.length).to.eql(1);
expect(task.reminders[0]).to.be.an('object');
expect(task.reminders[0]._id).to.eql(id1);
expect(task.reminders[0].id).to.eql(id1);
expect(task.reminders[0].startDate).to.be.a('string'); // json doesn't have dates
expect(task.reminders[0].time).to.be.a('string');
});
@@ -345,7 +345,7 @@ describe('POST /tasks/user', () => {
expect(task.checklist[0]).to.be.an('object');
expect(task.checklist[0].text).to.eql('checklist');
expect(task.checklist[0].completed).to.eql(false);
expect(task.checklist[0]._id).to.be.a('string');
expect(task.checklist[0].id).to.be.a('string');
});
});
@@ -487,7 +487,7 @@ describe('POST /tasks/user', () => {
expect(task.checklist[0]).to.be.an('object');
expect(task.checklist[0].text).to.eql('checklist');
expect(task.checklist[0].completed).to.eql(false);
expect(task.checklist[0]._id).to.be.a('string');
expect(task.checklist[0].id).to.be.a('string');
});
});

View File

@@ -80,14 +80,14 @@ describe('PUT /tasks/:id', () => {
let savedDaily = await user.put(`/tasks/${daily._id}`, {
reminders: [
{_id: id1, time: new Date(), startDate: new Date()},
{_id: id2, time: new Date(), startDate: new Date()},
{id: id1, time: new Date(), startDate: new Date()},
{id: id2, time: new Date(), startDate: new Date()},
],
});
expect(savedDaily.reminders.length).to.equal(2);
expect(savedDaily.reminders[0]._id).to.equal(id1);
expect(savedDaily.reminders[1]._id).to.equal(id2);
expect(savedDaily.reminders[0].id).to.equal(id1);
expect(savedDaily.reminders[1].id).to.equal(id2);
});
});

View File

@@ -51,7 +51,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
let anotherUser = await generateUser();
await expect(anotherUser.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`))
await expect(anotherUser.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`))
.to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
@@ -67,7 +67,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
let savedTask = await user.post(`/tasks/${task._id}/checklist`, {text: 'Checklist Item 1', completed: false});
await user.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`);
await user.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`);
savedTask = await user.get(`/tasks/${task._id}`);
expect(savedTask.checklist.length).to.equal(0);
@@ -81,7 +81,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
let savedTask = await user.post(`/tasks/${task._id}/checklist`, {text: 'Checklist Item 1', completed: false});
await user.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`);
await user.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`);
savedTask = await user.get(`/tasks/${task._id}`);
expect(savedTask.checklist.length).to.equal(0);

View File

@@ -62,8 +62,8 @@ describe('POST /tasks/:taskId/checklist/', () => {
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].text).to.equal('Checklist Item 1');
expect(savedTask.checklist[0].completed).to.equal(false);
expect(savedTask.checklist[0]._id).to.be.a('string');
expect(savedTask.checklist[0]._id).to.not.equal('123');
expect(savedTask.checklist[0].id).to.be.a('string');
expect(savedTask.checklist[0].id).to.not.equal('123');
expect(savedTask.checklist[0].ignored).to.be.an('undefined');
});
@@ -82,8 +82,8 @@ describe('POST /tasks/:taskId/checklist/', () => {
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].text).to.equal('Checklist Item 1');
expect(savedTask.checklist[0].completed).to.equal(false);
expect(savedTask.checklist[0]._id).to.be.a('string');
expect(savedTask.checklist[0]._id).to.not.equal('123');
expect(savedTask.checklist[0].id).to.be.a('string');
expect(savedTask.checklist[0].id).to.not.equal('123');
expect(savedTask.checklist[0].ignored).to.be.an('undefined');
});

View File

@@ -48,7 +48,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
let anotherUser = await generateUser();
await expect(anotherUser.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`, {
await expect(anotherUser.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`, {
text: 'updated',
completed: true,
_id: 123, // ignored
@@ -71,7 +71,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
completed: false,
});
savedTask = await user.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`, {
savedTask = await user.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`, {
text: 'updated',
completed: true,
_id: 123, // ignored
@@ -80,7 +80,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].text).to.equal('updated');
expect(savedTask.checklist[0].completed).to.equal(true);
expect(savedTask.checklist[0]._id).to.not.equal('123');
expect(savedTask.checklist[0].id).to.not.equal('123');
});
it('updates a checklist item on todos', async () => {
@@ -94,7 +94,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
completed: false,
});
savedTask = await user.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`, {
savedTask = await user.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`, {
text: 'updated',
completed: true,
_id: 123, // ignored
@@ -103,7 +103,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].text).to.equal('updated');
expect(savedTask.checklist[0].completed).to.equal(true);
expect(savedTask.checklist[0]._id).to.not.equal('123');
expect(savedTask.checklist[0].id).to.not.equal('123');
});
it('fails on habits', async () => {

View File

@@ -19,7 +19,7 @@ describe('DELETE /tasks/:taskId/checklist/:itemId', () => {
let savedTask = await user.post(`/tasks/${task._id}/checklist`, {text: 'Checklist Item 1', completed: false});
await user.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`);
await user.del(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`);
savedTask = await user.get(`/tasks/${task._id}`);
expect(savedTask.checklist.length).to.equal(0);

View File

@@ -26,8 +26,8 @@ describe('POST /tasks/:taskId/checklist/', () => {
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].text).to.equal('Checklist Item 1');
expect(savedTask.checklist[0].completed).to.equal(false);
expect(savedTask.checklist[0]._id).to.be.a('string');
expect(savedTask.checklist[0]._id).to.not.equal('123');
expect(savedTask.checklist[0].id).to.be.a('string');
expect(savedTask.checklist[0].id).to.not.equal('123');
expect(savedTask.checklist[0].ignored).to.be.an('undefined');
});

View File

@@ -22,7 +22,7 @@ describe('POST /tasks/:taskId/checklist/:itemId/score', () => {
completed: false,
});
savedTask = await user.post(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}/score`);
savedTask = await user.post(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}/score`);
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].completed).to.equal(true);

View File

@@ -22,7 +22,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
completed: false,
});
savedTask = await user.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0]._id}`, {
savedTask = await user.put(`/tasks/${task._id}/checklist/${savedTask.checklist[0].id}`, {
text: 'updated',
completed: true,
_id: 123, // ignored
@@ -31,7 +31,7 @@ describe('PUT /tasks/:taskId/checklist/:itemId', () => {
expect(savedTask.checklist.length).to.equal(1);
expect(savedTask.checklist[0].text).to.equal('updated');
expect(savedTask.checklist[0].completed).to.equal(true);
expect(savedTask.checklist[0]._id).to.not.equal('123');
expect(savedTask.checklist[0].id).to.not.equal('123');
});
it('fails on habits', async () => {

View File

@@ -19,8 +19,8 @@ describe('DELETE /tasks/:taskId/tags/:tagId', () => {
let tag = await user.post('/tags', {name: 'Tag 1'});
await user.post(`/tasks/${task._id}/tags/${tag._id}`);
await user.del(`/tasks/${task._id}/tags/${tag._id}`);
await user.post(`/tasks/${task._id}/tags/${tag.id}`);
await user.del(`/tasks/${task._id}/tags/${tag.id}`);
let updatedTask = await user.get(`/tasks/${task._id}`);

View File

@@ -18,9 +18,9 @@ describe('POST /tasks/:taskId/tags/:tagId', () => {
});
let tag = await user.post('/tags', {name: 'Tag 1'});
let savedTask = await user.post(`/tasks/${task._id}/tags/${tag._id}`);
let savedTask = await user.post(`/tasks/${task._id}/tags/${tag.id}`);
expect(savedTask.tags[0]).to.equal(tag._id);
expect(savedTask.tags[0]).to.equal(tag.id);
});
it('does not add a tag to a task twice', async () => {
@@ -31,9 +31,9 @@ describe('POST /tasks/:taskId/tags/:tagId', () => {
let tag = await user.post('/tags', {name: 'Tag 1'});
await user.post(`/tasks/${task._id}/tags/${tag._id}`);
await user.post(`/tasks/${task._id}/tags/${tag.id}`);
await expect(user.post(`/tasks/${task._id}/tags/${tag._id}`)).to.eventually.be.rejected.and.eql({
await expect(user.post(`/tasks/${task._id}/tags/${tag.id}`)).to.eventually.be.rejected.and.eql({
code: 400,
error: 'BadRequest',
message: t('alreadyTagged'),