@@ -7,10 +7,16 @@ var chaiAsPromised = require("chai-as-promised");
7
7
chai . use ( chaiAsPromised ) ;
8
8
var users = require ( '../../controllers/Users.js' ) ;
9
9
var workers = require ( '../../services/queue/workers' ) ;
10
+ var _ = require ( 'lodash' ) ;
11
+ var db = require ( '../../models' ) ;
10
12
11
13
12
14
var userId ;
13
15
var userId2 ;
16
+ var lastId ;
17
+ var forDelete ;
18
+ var trashId ;
19
+ var from = new Date ( new Date ( ) . setMinutes ( new Date ( ) . getMinutes ( ) - 3 ) ) . toISOString ( ) ;
14
20
describe ( 'Users controller' , function ( ) {
15
21
it ( 'should create documents' , function ( done ) {
16
22
var next = function ( err ) {
@@ -106,6 +112,7 @@ describe('Users controller', function(){
106
112
107
113
data . should . be . an . object ; /* jslint ignore:line */
108
114
extraData . total . should . be . a . number ; /* jslint ignore:line */
115
+ extraData . totalResult . should . be . a . number ; /* jslint ignore:line */
109
116
done ( ) ;
110
117
} ;
111
118
var req = { } ;
@@ -118,7 +125,7 @@ describe('Users controller', function(){
118
125
} ;
119
126
var res = { } ;
120
127
res . ok = function ( data , cache , extraData ) {
121
-
128
+ lastId = extraData . lastId ;
122
129
data . should . be . an . object ; /* jslint ignore:line */
123
130
extraData . lastId . should . be . a . string ; /* jslint ignore:line */
124
131
done ( ) ;
@@ -189,7 +196,80 @@ describe('Users controller', function(){
189
196
req . query . populate = 'toPop' ;
190
197
users . find ( req , res , next ) ;
191
198
} ) ;
192
- } ) ;
199
+
200
+ it ( 'should load next page for pagination' , function ( done ) {
201
+ var next = function ( err ) {
202
+ done ( err ) ;
203
+ } ;
204
+ var res = { } ;
205
+ res . ok = function ( data ) {
206
+ var next = function ( err ) {
207
+ done ( err ) ;
208
+ } ;
209
+ var res = { } ;
210
+ res . ok = function ( data , cache , extraData ) {
211
+ forDelete = _ . map ( data , function ( value ) {
212
+ return value . _id . toString ( ) ;
213
+ } ) ;
214
+ data . should . be . an . object ; /* jslint ignore:line */
215
+ done ( ) ;
216
+ } ;
217
+ var req = { } ;
218
+ req . query = { _id : { $gt : lastId } } ;
219
+ users . find ( req , res , next ) ;
220
+ } ;
221
+ var req = { } ;
222
+ req . body = [ {
223
+ name : 'Femi2' ,
224
+ someOtherStringData : 'this is pizza'
225
+ } ,
226
+ {
227
+ name : 'Bolu2' ,
228
+ someOtherStringData : 'this is a meat'
229
+ } ,
230
+ {
231
+ name : 'Bayo2' ,
232
+ someOtherStringData : 'Meta'
233
+ } ] ;
234
+ users . create ( req , res , next ) ;
235
+ } ) ;
236
+
237
+ it ( 'should filter by date range' , function ( done ) {
238
+ var next = function ( err ) {
239
+ done ( err ) ;
240
+ } ;
241
+ var res = { } ;
242
+ res . ok = function ( data , cache , extraData ) {
243
+
244
+ data . should . be . an . object ; /* jslint ignore:line */
245
+ data . length . should . be . above ( 0 ) ; /* jslint ignore:line */
246
+ done ( ) ;
247
+ } ;
248
+ var req = { } ;
249
+ req . query = { } ;
250
+ req . query . from = from ;
251
+
252
+ req . query . to = new Date ( ) . toISOString ( ) ;
253
+ users . find ( req , res , next ) ;
254
+ } ) ;
255
+
256
+ it ( 'should filter by date range without setting the end date' , function ( done ) {
257
+ var next = function ( err ) {
258
+ done ( err ) ;
259
+ } ;
260
+ var res = { } ;
261
+ res . ok = function ( data , cache , extraData ) {
262
+
263
+ data . should . be . an . object ; /* jslint ignore:line */
264
+ data . length . should . be . above ( 0 ) ; /* jslint ignore:line */
265
+ done ( ) ;
266
+ } ;
267
+ var req = { } ;
268
+ req . query = { } ;
269
+ req . query . from = from ;
270
+ users . find ( req , res , next ) ;
271
+ } ) ;
272
+ } ) ;
193
273
194
274
it ( 'should find one document' , function ( done ) {
195
275
var next = function ( err ) {
@@ -225,7 +305,7 @@ it('should update a document', function(done){
225
305
} ;
226
306
var res = { } ;
227
307
res . ok = function ( data , cache , extraData ) {
228
- console . log ( 'hhfhf' , data ) ;
308
+
229
309
data . should . be . an ( 'object' ) ; /* jslint ignore:line */
230
310
done ( ) ;
231
311
} ;
@@ -235,12 +315,74 @@ it('should update a document', function(done){
235
315
users . updateOne ( req , res , next ) ;
236
316
} ) ;
237
317
describe ( 'Delete' , function ( ) {
238
- it ( 'should delete multiple data' ) ;
239
- it ( 'should have back up multiple deleted data' ) ;
240
- it ( 'should delete one data' ) ;
241
- it ( 'should have backed up one data' ) ;
318
+ it ( 'should delete multiple data' , function ( done ) {
319
+ var next = function ( err ) {
320
+ done ( err ) ;
321
+ } ;
322
+ var res = { } ;
323
+ res . ok = function ( data , cache , extraData ) {
324
+
325
+ data . length . should . be . above ( 0 ) ; /* jslint ignore:line */
326
+ done ( ) ;
327
+ } ;
328
+ var req = { } ;
329
+ req . query = { _id : { $gt : lastId } } ;
330
+ users . delete ( req , res , next ) ;
331
+ } ) ;
332
+ it ( 'should have backed up multiple deleted data' , function ( done ) {
333
+ setTimeout ( function ( ) {
334
+ db . Trash . find ( )
335
+ . where ( 'data._id' )
336
+ . in ( forDelete )
337
+ . then ( function ( res ) {
338
+ res . length . should . be . above ( 0 ) ;
339
+ done ( ) ;
340
+ } )
341
+ . catch ( function ( err ) {
342
+ done ( err ) ;
343
+ } ) ;
344
+ } , 1000 ) ;
345
+ } ) ;
346
+ it ( 'should delete one data' , function ( done ) {
347
+ var next = function ( err ) {
348
+ done ( err ) ;
349
+ } ;
350
+ var res = { } ;
351
+ res . ok = function ( data , cache , extraData ) {
352
+ data . should . be . an ( 'object' ) ; /* jslint ignore:line */
353
+ done ( ) ;
354
+ } ;
355
+ var req = { } ;
356
+ req . params = { id : lastId } ;
357
+ users . deleteOne ( req , res , next ) ;
358
+ } ) ;
359
+ it ( 'should have backed up one data' , function ( done ) {
360
+ setTimeout ( function ( ) {
361
+ db . Trash . find ( { 'data._id' :lastId . toString ( ) } )
362
+ . then ( function ( resp ) {
363
+ trashId = resp [ 0 ] . _id ;
364
+ resp . length . should . be . above ( 0 ) ;
365
+ done ( ) ;
366
+ } )
367
+ . catch ( function ( err ) {
368
+ done ( err ) ;
369
+ } ) ;
370
+ } , 1000 ) ;
371
+ } ) ;
242
372
} ) ;
243
373
describe ( 'Restore' , function ( ) {
244
- it ( 'should restore a previously deleted data' ) ;
374
+ it ( 'should restore a previously deleted data' , function ( done ) {
375
+ var next = function ( err ) {
376
+ done ( err ) ;
377
+ } ;
378
+ var res = { } ;
379
+ res . ok = function ( data , cache , extraData ) {
380
+ data . should . be . an ( 'object' ) ; /* jslint ignore:line */
381
+ done ( ) ;
382
+ } ;
383
+ var req = { } ;
384
+ req . params = { id : trashId } ;
385
+ users . restore ( req , res , next ) ;
386
+ } ) ;
245
387
} ) ;
246
388
} ) ;
0 commit comments