@@ -7,10 +7,16 @@ var chaiAsPromised = require("chai-as-promised");
77chai . use ( chaiAsPromised ) ;
88var users = require ( '../../controllers/Users.js' ) ;
99var workers = require ( '../../services/queue/workers' ) ;
10+ var _ = require ( 'lodash' ) ;
11+ var db = require ( '../../models' ) ;
1012
1113
1214var userId ;
1315var userId2 ;
16+ var lastId ;
17+ var forDelete ;
18+ var trashId ;
19+ var from = new Date ( new Date ( ) . setMinutes ( new Date ( ) . getMinutes ( ) - 3 ) ) . toISOString ( ) ;
1420describe ( 'Users controller' , function ( ) {
1521 it ( 'should create documents' , function ( done ) {
1622 var next = function ( err ) {
@@ -106,6 +112,7 @@ describe('Users controller', function(){
106112
107113 data . should . be . an . object ; /* jslint ignore:line */
108114 extraData . total . should . be . a . number ; /* jslint ignore:line */
115+ extraData . totalResult . should . be . a . number ; /* jslint ignore:line */
109116 done ( ) ;
110117 } ;
111118 var req = { } ;
@@ -118,7 +125,7 @@ describe('Users controller', function(){
118125 } ;
119126 var res = { } ;
120127 res . ok = function ( data , cache , extraData ) {
121-
128+ lastId = extraData . lastId ;
122129 data . should . be . an . object ; /* jslint ignore:line */
123130 extraData . lastId . should . be . a . string ; /* jslint ignore:line */
124131 done ( ) ;
@@ -189,7 +196,80 @@ describe('Users controller', function(){
189196 req . query . populate = 'toPop' ;
190197 users . find ( req , res , next ) ;
191198 } ) ;
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+ } ) ;
193273
194274it ( 'should find one document' , function ( done ) {
195275 var next = function ( err ) {
@@ -225,7 +305,7 @@ it('should update a document', function(done){
225305 } ;
226306 var res = { } ;
227307 res . ok = function ( data , cache , extraData ) {
228- console . log ( 'hhfhf' , data ) ;
308+
229309 data . should . be . an ( 'object' ) ; /* jslint ignore:line */
230310 done ( ) ;
231311 } ;
@@ -235,12 +315,74 @@ it('should update a document', function(done){
235315 users . updateOne ( req , res , next ) ;
236316} ) ;
237317describe ( '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+ } ) ;
242372} ) ;
243373describe ( '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+ } ) ;
245387} ) ;
246388} ) ;
0 commit comments