Added tests for the event endpoints

Also installed chai, chai http & mocha
This commit is contained in:
Stefan-5422
2021-10-18 13:14:13 +02:00
parent a966bfffd9
commit 8d50c44b7e
4 changed files with 968 additions and 4 deletions
+82
View File
@@ -0,0 +1,82 @@
process.env.NODE_ENV = "test";
import chai from "chai";
import chaiHttp from "chai-http";
import server from "../app";
import prisma from "../lib/prisma";
const should = chai.should();
chai.use(chaiHttp);
describe("events", () => {
beforeEach("clear database", (done) => {
prisma.event.deleteMany({}).then((a) => done());
});
describe("Getall events", () => {
it("should return an empty array", (done) => {
chai
.request(server)
.get("/api/events/")
.end((err, res) => {
should.not.exist(err);
res.should.have.status(204);
done();
});
});
it("should return an array with all the objects", (done) => {
prisma.event
.create({
data: { date: new Date(Date.now()).toISOString(), name: "yes" },
})
.then((a) => {
chai
.request(server)
.get("/api/events")
.end((err, res) => {
should.not.exist(err);
res.should.have.status(200);
res.body.should.be.a("array");
res.body.length.should.be.eql(1);
done();
});
});
});
});
describe("#add", () => {
it("should return object", (done) => {
let event = {
date: new Date(Date.now()).toISOString(),
name: "test",
};
chai
.request(server)
.post("/api/events")
.send(event)
.end((err, res) => {
should.not.exist(err);
res.should.have.status(201);
res.should.be.a("object");
res.body.should.have.property("pid");
res.body.should.have.property("name");
res.body.should.have.property("date");
done();
});
});
it("should return 400 if the request is malformed", (done) => {
chai
.request(server)
.post("/api/events")
.send()
.end((err, res) => {
should.not.exist(err);
res.should.have.status(400);
res.body.should.not.have.property("");
done();
});
});
});
});
+3
View File
@@ -13,6 +13,7 @@ async function main() {
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
// All API endpoints are behind /api/...
app.use("/api/events", eventRouter);
app.listen(process.env.PORT, () => {
@@ -27,3 +28,5 @@ main()
.finally(async () => {
await prisma.$disconnect();
});
export default app;