let mongoose = require("mongoose"); let AwardingModel = require('../models/awarding'); let urls = require('../config/api-url'); let codes = require('../routes/http-codes'); //Require the dev-dependencies let chai = require('chai'); let chaiHttp = require('chai-http'); let server = require('../server'); let should = chai.should(); chai.use(chaiHttp); //Our parent block describe('Awardings', () => { beforeEach((done) => { //Before each test we empty the database AwardingModel.remove({}, (err) => { done(); }); }); /* * Test the /GET awardings */ describe('/GET awardings', () => { it('it should GET all awardings', (done) => { chai.request(server) .get(urls.awards) .end((err, res) => { res.should.have.status(codes.success); res.body.should.be.a('array'); res.body.length.should.be.eql(0); done(); }); }); }); /* * Test the /POST awardings */ describe('/POST awardings', () => { it('it should not POST an awarding without auth-token provided', (done) => { chai.request(server) .post(urls.awards) .send({}) .end((err, res) => { res.should.have.status(codes.forbidden); res.body.should.be.a('object'); res.body.should.have.property('success').eql(false); res.body.should.have.property('message').eql('No token provided.'); done(); }); }); }); /* * Test the /PATCH awardings */ describe('/PATCH awardings', () => { it('it should not PATCH an awarding without auth-token provided', (done) => { chai.request(server) .patch(urls.awards + '/someId') .send({}) .end((err, res) => { res.should.have.status(codes.forbidden); res.body.should.be.a('object'); res.body.should.have.property('success').eql(false); res.body.should.have.property('message').eql('No token provided.'); done(); }); }); }); /* * Test the /DELETE awardings */ describe('/DELETE awardings', () => { it('it should not accept DELETE method without id in url', (done) => { chai.request(server) .delete(urls.awards) .send({}) .end((err, res) => { res.should.have.status(codes.wrongmethod); res.body.should.be.a('object'); res.body.should.have.property('error').property('message') .eql('this method is not allowed at ' + urls.awards); done(); }); }); it('it should not DELETE an awarding without auth-token provided', (done) => { chai.request(server) .delete(urls.awards + '/someId') .send({}) .end((err, res) => { res.should.have.status(codes.forbidden); res.body.should.be.a('object'); res.body.should.have.property('success').eql(false); res.body.should.have.property('message').eql('No token provided.'); done(); }); }); }); });