Skip to content

Commit a937907

Browse files
committed
Added test cases for book APIs
1 parent bcaa81d commit a937907

File tree

2 files changed

+164
-3
lines changed

2 files changed

+164
-3
lines changed

test/auth.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
const { chai, server, should } = require('./testConfig');
22
const UserModel = require("../models/UserModel");
33

4-
//Our parent block
4+
/**
5+
* Test cases to test all the authentication APIs
6+
* Covered Routes:
7+
* (1) Login
8+
* (2) Register
9+
* (3) Resend Confirm OTP
10+
* (4) Verify Confirm OTP
11+
*/
12+
513
describe('Auth', () => {
614

7-
before((done) => { //Before each test we empty the database
15+
// Before each test we empty the database
16+
before((done) => {
817
UserModel.deleteMany({}, (err) => {
918
done();
1019
});
1120
});
1221

22+
// Prepare data for testing
1323
const testData = {
1424
"firstName":"test",
1525
"lastName":"testing",
@@ -132,7 +142,7 @@ describe('Auth', () => {
132142
* Test the /POST route
133143
*/
134144
describe('/POST Login', () => {
135-
it('it should Send failed user Login', (done) => {
145+
it('it should do user Login', (done) => {
136146
chai.request(server)
137147
.post('/api/auth/login')
138148
.send({"email": testData.email,"password": testData.password})

test/book.js

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
const { chai, server, should } = require('./testConfig');
2+
const BookModel = require("../models/BookModel");
3+
4+
/**
5+
* Test cases to test all the book APIs
6+
* Covered Routes:
7+
* (1) Login
8+
* (2) Store book
9+
* (3) Get all books
10+
* (4) Get single book
11+
* (5) Update book
12+
* (6) Delete book
13+
*/
14+
15+
describe('Book', () => {
16+
//Before each test we empty the database
17+
before((done) => {
18+
BookModel.deleteMany({}, (err) => {
19+
done();
20+
});
21+
});
22+
23+
// Prepare data for testing
24+
const userTestData = {
25+
"password":"Test@123",
26+
27+
}
28+
29+
// Prepare data for testing
30+
const testData = {
31+
"title":"testing book",
32+
"description":"testing book desc",
33+
"isbn":"3214htrff4"
34+
};
35+
36+
/*
37+
* Test the /POST route
38+
*/
39+
describe('/POST Login', () => {
40+
it('it should do user Login for book', (done) => {
41+
chai.request(server)
42+
.post('/api/auth/login')
43+
.send({"email": userTestData.email,"password": userTestData.password})
44+
.end((err, res) => {
45+
res.should.have.status(200);
46+
res.body.should.have.property('message').eql("Login Success.");
47+
userTestData.token = res.body.data.token;
48+
done();
49+
});
50+
});
51+
});
52+
53+
/*
54+
* Test the /POST route
55+
*/
56+
describe('/POST Book Store', () => {
57+
it('It should send validation error for store book', (done) => {
58+
chai.request(server)
59+
.post('/api/book')
60+
.send()
61+
.set('Authorization', 'Bearer '+ userTestData.token)
62+
.end((err, res) => {
63+
res.should.have.status(400);
64+
done();
65+
});
66+
});
67+
});
68+
69+
/*
70+
* Test the /POST route
71+
*/
72+
describe('/POST Book Store', () => {
73+
it('It should store book', (done) => {
74+
chai.request(server)
75+
.post('/api/book')
76+
.send(testData)
77+
.set('Authorization', 'Bearer '+ userTestData.token)
78+
.end((err, res) => {
79+
res.should.have.status(200);
80+
res.body.should.have.property('message').eql("Book add Success.");
81+
done();
82+
});
83+
});
84+
});
85+
86+
/*
87+
* Test the /GET route
88+
*/
89+
describe('/GET All book', () => {
90+
it('it should GET all the books', (done) => {
91+
chai.request(server)
92+
.get('/api/book')
93+
.set('Authorization', 'Bearer '+ userTestData.token)
94+
.end((err, res) => {
95+
res.should.have.status(200);
96+
res.body.should.have.property('message').eql("Operation success");
97+
testData._id = res.body.data[0]._id;
98+
done();
99+
});
100+
});
101+
});
102+
103+
/*
104+
* Test the /GET/:id route
105+
*/
106+
describe('/GET/:id book', () => {
107+
it('it should GET the books', (done) => {
108+
chai.request(server)
109+
.get('/api/book/'+testData._id)
110+
.set('Authorization', 'Bearer '+ userTestData.token)
111+
.end((err, res) => {
112+
res.should.have.status(200);
113+
res.body.should.have.property('message').eql("Operation success");
114+
done();
115+
});
116+
});
117+
});
118+
119+
/*
120+
* Test the /PUT/:id route
121+
*/
122+
describe('/PUT/:id book', () => {
123+
it('it should PUT the books', (done) => {
124+
chai.request(server)
125+
.put('/api/book/'+testData._id)
126+
.send(testData)
127+
.set('Authorization', 'Bearer '+ userTestData.token)
128+
.end((err, res) => {
129+
res.should.have.status(200);
130+
res.body.should.have.property('message').eql("Book update Success.");
131+
done();
132+
});
133+
});
134+
});
135+
136+
/*
137+
* Test the /DELETE/:id route
138+
*/
139+
describe('/DELETE/:id book', () => {
140+
it('it should DELETE the books', (done) => {
141+
chai.request(server)
142+
.delete('/api/book/'+testData._id)
143+
.set('Authorization', 'Bearer '+ userTestData.token)
144+
.end((err, res) => {
145+
res.should.have.status(200);
146+
res.body.should.have.property('message').eql("Book delete Success.");
147+
done();
148+
});
149+
});
150+
});
151+
});

0 commit comments

Comments
 (0)