Files
2022-03-09 17:46:51 +07:00

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();
});
});
});
});