91 lines
2.7 KiB
JavaScript
91 lines
2.7 KiB
JavaScript
'use strict';
|
|
|
|
var config = require('../../config');
|
|
var should = require('should');
|
|
var seedDb = require('../seed');
|
|
var request = require('supertest');
|
|
var favs = require('../seedData')
|
|
|
|
describe('Task 6: Testing /bookmarked routes and /favorites/:favoriteid/bookmarked', function(){
|
|
|
|
describe('GET /bookmarked', function(){
|
|
it('should list only the bookmarked favs', function(done){
|
|
request(config.url)
|
|
.get('/bookmarked')
|
|
.set('Accept', 'application/json')
|
|
.expect('Content-Type', /json/, 'it should respond with json' )
|
|
.expect(200)
|
|
.end(function(err, res){
|
|
var resFavs = JSON.parse(res.text);
|
|
resFavs.forEach(function(fav){
|
|
should.equal(fav[config.form.bookmarked], "true");
|
|
});
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe('PUT /favorites/:favoriteid/bookmarked', function(){
|
|
after(drop)
|
|
|
|
it('initial bookmarked value should be false', function(done){
|
|
request(config.url)
|
|
.get(`/favorites/${favs[0]._id}`)
|
|
.set('Accept', 'application/json')
|
|
.expect('Content-Type', /json/, 'it should respond with json' )
|
|
.expect(200)
|
|
.end(function(err, res){
|
|
var resFav = JSON.parse(res.text);
|
|
should(resFav[config.form.bookmarked], "false")
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should change the bookmarked value', function(done){
|
|
const reqBody = {}
|
|
reqBody[config.form.bookmarked] = "true"
|
|
|
|
request(config.url)
|
|
.put(`/favorites/${favs[0]._id}/bookmarked`)
|
|
.set('Content-Type', 'application/json')
|
|
.set('Accept', 'application/json')
|
|
.send(reqBody)
|
|
.expect('Content-Type', /json/, 'it should respond with json' )
|
|
.expect(200)
|
|
.end(function(err, res){
|
|
var resFav = JSON.parse(res.text);
|
|
should(resFav[config.form.bookmarked], "true")
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('bookmarked value should be changed', function(done){
|
|
request(config.url)
|
|
.get(`/favorites/${favs[0]._id}`)
|
|
.set('Accept', 'application/json')
|
|
.expect('Content-Type', /json/, 'it should respond with json' )
|
|
.expect(200)
|
|
.end(function(err, res){
|
|
var resFav = JSON.parse(res.text);
|
|
should(resFav[config.form.bookmarked], "true")
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
function drop(done){
|
|
let deleteIds = ['t0','t3','t4','t5', 'tt1']
|
|
let count = 0
|
|
|
|
for (let i = 0; i < deleteIds.length; i++) {
|
|
request(config.url)
|
|
.delete(`/favorites/${deleteIds[i]}`)
|
|
.end(function() {
|
|
count++
|
|
if(count == deleteIds.length) {
|
|
done()
|
|
}
|
|
})
|
|
}
|
|
}
|