140 lines
3.5 KiB
JavaScript
Executable File
140 lines
3.5 KiB
JavaScript
Executable File
// process.env.NODE_ENV = "test";
|
|
|
|
//Require the dev-dependencies
|
|
let chai = require("chai");
|
|
let chaiHttp = require("chai-http");
|
|
let server = require("../src/app");
|
|
let should = chai.should();
|
|
|
|
chai.use(chaiHttp);
|
|
|
|
// testing with a separate test database
|
|
// clear data
|
|
|
|
/*
|
|
* Test the /GET route
|
|
*/
|
|
describe("/GET root", () => {
|
|
it("it should GET the root of the API", done => {
|
|
chai
|
|
.request(server)
|
|
.get("/")
|
|
.end((err, res) => {
|
|
res.should.have.status(200);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("/GET root api", () => {
|
|
it("it should GET root api", done => {
|
|
chai
|
|
.request(server)
|
|
.get("/api")
|
|
.end((err, res) => {
|
|
res.should.have.status(200);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("/POST items", () => {
|
|
it("it should POST item", done => {
|
|
chai
|
|
.request(server)
|
|
.post("/api/items")
|
|
.send({
|
|
"name": "Cheese Pizza",
|
|
"size": "Small",
|
|
"isExtra": false,
|
|
"price": 4.50,
|
|
"status": "available"
|
|
})
|
|
.end((err, res) => {
|
|
res.should.have.status(201);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("/PUT items/:itemId", () => {
|
|
it("it should UPDATE item", done => {
|
|
chai.request(server)
|
|
.get('/api/items')
|
|
.end(function(err, res){
|
|
chai.request(server)
|
|
.put('/api/items/'+res.body[0].id)
|
|
.send({
|
|
"name": "Cheese Pizza",
|
|
"size": "Small",
|
|
"price": 4.50,
|
|
"status": "unavailable"
|
|
})
|
|
.end(function(error, response){
|
|
response.should.have.status(200);
|
|
response.should.be.json;
|
|
response.body.should.be.a('object');
|
|
response.body.should.have.property('name');
|
|
response.body.should.have.property('size');
|
|
response.body.should.have.property('price');
|
|
response.body.should.have.property('status');
|
|
response.body.should.have.property('id');
|
|
response.body.name.should.equal('Cheese Pizza');
|
|
response.body.status.should.equal('unavailable');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("/GET items", () => {
|
|
it("it should GET all times", done => {
|
|
chai
|
|
.request(server)
|
|
.get("/api/items")
|
|
.end((err, res) => {
|
|
res.should.have.status(200);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("/GET items/:itemId", () => {
|
|
it("it should GET one item by id ", done => {
|
|
chai.request(server)
|
|
.get('/api/items')
|
|
.end(function(err, res){
|
|
chai.request(server)
|
|
.get('/api/items/'+res.body[0].id)
|
|
.end(function(error, response){
|
|
response.should.have.status(200);
|
|
response.should.be.json;
|
|
response.body.should.be.a('object');
|
|
response.body.should.have.property('name');
|
|
response.body.should.have.property('size');
|
|
response.body.should.have.property('price');
|
|
response.body.should.have.property('status');
|
|
response.body.should.have.property('id');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("/DELETE items", () => {
|
|
it("it should DELETE the item", done => {
|
|
chai.request(server)
|
|
.get('/api/items')
|
|
.end(function(err, res){
|
|
chai.request(server)
|
|
.delete('/api/items/'+res.body[0].id)
|
|
.end(function(error, response){
|
|
response.should.have.status(200);
|
|
response.should.be.json;
|
|
response.body.should.be.a('object');
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
});
|