omnifilter
Version:
"Awesome filters applied to personal images"
96 lines (85 loc) • 2.74 kB
JavaScript
const chai = require('chai');
const chaiHttp = require('chai-http');
chai.use(chaiHttp);
const expect = chai.expect;
const mongoose = require('mongoose');
process.env.MONGOLAB_URI = 'mongodb://localhost/content_app_test';
const server = require(__dirname + '/../server');
const Content = require(__dirname + '/../models/content');
const User = require(__dirname + '/../models/user');
describe('content API', () => {
var userToken;
var userId;
before((done) => {
var newUser = new User();
newUser.email = 'gene@gmail.com';
newUser.hashPassword('password');
newUser.save((err, data) => {
if(err) return console.log(err);
userToken = data.generateToken();
userId = data._id;
// console.log('made user, token is : ' + userToken);
done();
});
});
after((done) => {
mongoose.connection.db.dropDatabase(() => {
done();
});
});
it('should be able to GET all content', (done) => {
chai.request('localhost:3000')
.get('/getall')
.set({token: userToken})
.end((err, res) => {
expect(err).to.eql(null);
expect(res.body).to.not.eql(null);
done();
});
});
it('should create content with a POST', (done) => {
// console.log('user token : ' + userToken);
chai.request('localhost:3000')
.post('/newcontent')
.set({token: userToken})
.send({content: 'content'})
.end(function(err, res) {
expect(err).to.eql(null);
expect(res).to.have.status(200);
expect(res.body.content).to.eql('content');
expect(res.body).to.have.property('_id');
done();
});
});
describe('rest requests that require content already in db', () => {
beforeEach((done) => {
Content.create({content: 'test content', user_id: userId}, (err, data) => {
this.testContent = data;
done();
});
});
it('should be able to update content', (done) => {
chai.request('localhost:3000')
.put('/preview/' + this.testContent._id)
.set({token: userToken})
.send({name: 'new content name'})
.end((err, res) => {
expect(err).to.eql(null);
expect(res).to.have.status(200);
expect(res.body.msg).to.eql('Successfully updated content');
done();
});
});
it('should be able to delete content', (done) => {
chai.request('localhost:3000')
.delete('/delete/' + this.testContent._id)
.set({token: userToken})
.end((err, res) => {
expect(err).to.eql(null);
expect(res).to.have.status(200);
expect(res.body.msg).to.eql('Successfully deleted content');
done();
});
});
});
});