Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ecf21c3

Browse files
author
Andrew Mead
committed
Lesson: Setup Task Test Suite
1 parent 38faeab commit ecf21c3

File tree

6 files changed

+47
-86
lines changed

6 files changed

+47
-86
lines changed

task-manager/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"scripts": {
77
"start": "node src/index.js",
88
"dev": "env-cmd ./config/dev.env nodemon src/index.js",
9-
"test": "env-cmd ./config/test.env jest --watch"
9+
"test": "env-cmd ./config/test.env jest --watch --runInBand"
1010
},
1111
"jest": {
1212
"testEnvironment": "node"

task-manager/src/math.js

Lines changed: 0 additions & 28 deletions
This file was deleted.

task-manager/tests/fixtures/db.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
const mongoose = require('mongoose')
2+
const jwt = require('jsonwebtoken')
3+
const User = require('../../src/models/user')
4+
5+
const userOneId = new mongoose.Types.ObjectId()
6+
const userOne = {
7+
_id: userOneId,
8+
name: 'Mike',
9+
10+
password: '56what!!',
11+
tokens: [{
12+
token: jwt.sign({ _id: userOneId }, process.env.JWT_SECRET)
13+
}]
14+
}
15+
16+
const setupDatabase = async () => {
17+
await User.deleteMany()
18+
await new User(userOne).save()
19+
}
20+
21+
module.exports = {
22+
userOneId,
23+
userOne,
24+
setupDatabase
25+
}

task-manager/tests/math.test.js

Lines changed: 0 additions & 40 deletions
This file was deleted.

task-manager/tests/task.test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const request = require('supertest')
2+
const app = require('../src/app')
3+
const Task = require('../src/models/task')
4+
const { userOneId, userOne, setupDatabase } = require('./fixtures/db')
5+
6+
beforeEach(setupDatabase)
7+
8+
test('Should create task for user', async () => {
9+
const response = await request(app)
10+
.post('/tasks')
11+
.set('Authorization', `Bearer ${userOne.tokens[0].token}`)
12+
.send({
13+
description: 'From my test'
14+
})
15+
.expect(201)
16+
const task = await Task.findById(response.body._id)
17+
expect(task).not.toBeNull()
18+
expect(task.completed).toEqual(false)
19+
})

task-manager/tests/user.test.js

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,9 @@
11
const request = require('supertest')
2-
const jwt = require('jsonwebtoken')
3-
const mongoose = require('mongoose')
42
const app = require('../src/app')
53
const User = require('../src/models/user')
4+
const { userOneId, userOne, setupDatabase } = require('./fixtures/db')
65

7-
const userOneId = new mongoose.Types.ObjectId()
8-
const userOne = {
9-
_id: userOneId,
10-
name: 'Mike',
11-
12-
password: '56what!!',
13-
tokens: [{
14-
token: jwt.sign({ _id: userOneId }, process.env.JWT_SECRET)
15-
}]
16-
}
17-
18-
beforeEach(async () => {
19-
await User.deleteMany()
20-
await new User(userOne).save()
21-
})
6+
beforeEach(setupDatabase)
227

238
test('Should signup a new user', async () => {
249
const response = await request(app).post('/users').send({

0 commit comments

Comments
 (0)