UNPKG

5.4 kBJavaScriptView Raw
1var chai = require('chai');
2var expect = chai.expect;
3var chaiHttp = require('chai-http');
4var constants= require('../constants');
5
6var responseEntity = require('../utility/ResponseEntity.js');
7
8chai.use(chaiHttp);
9
10function iThrowError() {
11 throw new Error("Please Send code or error message");
12}
13
14/*
15**Test cases for null code and error object
16*/
17describe('Check for null code and error object', function () {
18 it('Should throw an error', function (done) {
19 try{
20 responseEntity.createResponse("PS", null, null, null, function (result) {
21 JSON.stringify(result);
22 })}
23 catch(err){
24 expect(err).to.eql(new Error('Please Send code or error message'));
25 }
26 done();
27 });
28});
29
30/*
31** Test cases for invalid json object
32*/
33describe('Check for invalid Json Object response object', function () {
34 it('Should return a invalid json error', function (done) {
35 var data = '{"id":1....}';
36 responseEntity.createResponse("US", constants.CREATED, data, null, function (result) {
37 JSON.stringify(result);
38 expect(result.code).to.be.a('string').eq('US-7001');
39 done();
40 })
41 });
42});
43
44/*
45** Test cases for Sequelize error
46*/
47describe('Check for Seqelize error', function () {
48 it('Should return a Sequelize database error ', function (done) {
49 var error = {
50 "name": "SequelizeDatabaseError",
51 "message": "database error"
52 }
53
54 responseEntity.createResponse("US", null, null, error, function (result) {
55 JSON.stringify(result);
56 expect(result.code).to.be.a('string').eq('US-1001');
57 done();
58 })
59 });
60
61 it('Should return a Sequelize validation error ', function (done) {
62 var error = {
63 "name": "SequelizeValidationError",
64 "message": "Invalid input paramters"
65 }
66
67 responseEntity.createResponse("US", null, null, error, function (result) {
68 JSON.stringify(result);
69 expect(result.code).to.be.a('string').eq('US-1002');
70 done();
71 })
72 });
73
74 it('Should return a generic database error', function (done) {
75
76 var error = {
77 "name": "SequelizeError",
78 "message": "connection close"
79 }
80
81 responseEntity.createResponse("US", null, null, error, function (result) {
82 JSON.stringify(result);
83 expect(result.code).to.be.a('string').eq('US-3002');
84 done();
85 })
86 });
87});
88
89/*
90** Test cases for cassandra database errors
91*/
92describe('Check for cassandra error', function () {
93 it('Should return a cassandra validation error', function (done) {
94 var error = {
95 "name": "apollo.model.validator.invalidvalue",
96 "message": "validation error"
97 }
98
99 responseEntity.createResponse("PS", null, null, error, function (result) {
100 JSON.stringify(result);
101 expect(result.code).to.be.a('string').eq('PS-2002');
102 done();
103 })
104 });
105
106 it('Should return a generlize database error', function (done) {
107 var error = {
108 "name": "CassandraError",
109 "message": "connection close"
110 }
111
112 responseEntity.createResponse("PS", null, null, error, function (result) {
113 JSON.stringify(result);
114 expect(result.code).to.be.a('string').eq('PS-3002');
115 done();
116 })
117 });
118});
119
120/*
121** Test cases for duplicate data errors
122*/
123describe('Check for duplcate data error', function () {
124 it('Should return an error', function (done) {
125 responseEntity.createResponse("PS", constants.USER_DUPLICATION_ERROR, null, null, function (result) {
126 JSON.stringify(result);
127 expect(result.code).to.be.a('string').eq('PS-5001');
128 done();
129 })
130 });
131});
132
133/*
134** Test cases for success response
135*/
136describe('Check for success response object', function () {
137 it('Should return a successfully created response ', function (done) {
138 var data = {
139 "id": 13
140 }
141 responseEntity.createResponse("US", constants.CREATED, data, null, function (result) {
142 JSON.stringify(result);
143 expect(result.code).to.be.a('string').eq('US-201');
144 done();
145 })
146 });
147
148 it('Should return a success response ', function (done) {
149 var data = {'id': '13','name': 'shiwani','mobNo': '9876543212'};
150 responseEntity.createResponse("US", constants.SUCCESS, data, null, function (result) {
151 JSON.stringify(result);
152 expect(result.code).to.be.a('string').eq('US-200');
153 done();
154 })
155 });
156
157 it('Should return a success response with data and count ', function (done) {
158 var data = {"rows":{'id': '13','name': 'shiwani','mobNo': '9876543212'},"count":3};
159 responseEntity.createResponse("US", constants.SUCCESS, data, null, function (result) {
160 JSON.stringify(result);
161 console.log(JSON.stringify(result));
162 expect(result.code).to.be.a('string').eq('US-200');
163 done();
164 })
165 });
166});
\No newline at end of file