Untitled
unknown
javascript
a year ago
4.8 kB
4
Indexable
const chai = require('chai'); const chaiHttp = require('chai-http'); const server = require('../app'); const should = chai.should(); const BlueBird = require('bluebird'); const Reminders = require('../models/reminders'); chai.use(chaiHttp); const setup = (...reminders) => { return BlueBird.mapSeries(reminders, user => { return chai.request(server) .post('/reminders') .send(user) .then(response => { return response.body; }) }) } describe('reminders_api', () => { const user_1_1 = { "user": 1, "description": "Drink Coffee", "date": "2020-08-24T07:28:24.000Z" } const user_2_1 = { "user": 2, "description": "Workout", "date": "2020-08-24T08:28:24.000Z" } const user_2_2 = { "user": 2, "description": "Eat Breakfast", "date": "2020-08-25T08:28:24.000Z" } const user_1_2 = { "user": 1, "description": "Eat Lunch", "date": "2020-08-24T13:28:24.000Z" } beforeEach(async () => { await Reminders.sync(); }) afterEach(async () => { await Reminders.drop(); }) it('should create a new reminder', async () => { const response = await chai.request(server).post('/reminders').send(user_1_1) response.should.have.status(201); delete response.body.id; response.body.should.eql(user_1_1) }); it('should fetch all the reminders', async () => { const results = await setup(user_1_1, user_1_2, user_2_1, user_2_2); const response = await chai.request(server).get('/reminders') response.should.have.status(200); response.body.should.eql(results); }) it('should fetch no reminders if no matching results are present for user', async () => { const results = await setup(user_1_1, user_1_2, user_2_1, user_2_2); const response = await chai.request(server).get('/reminders?user=3') response.should.have.status(200); response.body.should.eql([]); }) it('should fetch no reminders if no matching results are present after the date', async () => { const results = await setup(user_1_1, user_1_2, user_2_1, user_2_2); const response = await chai.request(server).get('/reminders?after=1598448504000') response.should.have.status(200); response.body.should.eql([]); }) it('should fetch all the reminders for a user', async () => { const results = await setup(user_1_1, user_1_2, user_2_1, user_2_2); const response = await chai.request(server).get('/reminders?user=2') response.should.have.status(200); response.body.should.eql([results[2], results[3]]); }) it('should fetch all the reminders after the date', async () => { const results = await setup(user_1_1, user_1_2, user_2_1, user_2_2); const response = await chai.request(server).get('/reminders?after=1598318904000') response.should.have.status(200); response.body.should.eql([results[3]]); }) it('should fetch all the reminders for a user after the date', async () => { const results = await setup(user_1_1, user_1_2, user_2_1, user_2_2); const response = await chai.request(server).get('/reminders?after=1598254824000&user=1') response.should.have.status(200); response.body.should.eql([results[1]]); }) it('should fetch a single reminder', async () => { const [reminder] = await setup(user_2_2); const response = await chai.request(server).get(`/reminders/${reminder.id}`) response.should.have.status(200); response.body.should.eql(reminder); }) it('should get 404 if the reminder ID does not exist', async () => { const response = await chai.request(server).get(`/reminders/32323`) response.should.have.status(404); response.text.should.eql('ID not found'); }) it('should get 405 for a put request to /reminders/:id', async () => { const [reminder] = await setup(user_2_2); const response = await chai.request(server).put(`/reminders/${reminder.id}`).send(reminder) response.should.have.status(405); }) it('should get 405 for a patch request to /reminders/:id', async () => { const [reminder] = await setup(user_2_2); const response = await chai.request(server).patch(`/reminders/${reminder.id}`).send(reminder) response.should.have.status(405); }) it('should get 405 for a delete request to /reminders/:id', async () => { const [reminder] = await setup(user_2_2); const response = await chai.request(server).delete(`/reminders/${reminder.id}`) response.should.have.status(405); }) });
Editor is loading...
Leave a Comment