@@ -10,6 +10,7 @@ chai.use(require('sinon-chai'));
1010var expect = chai . expect ;
1111var _ = require ( '../../src/lodash' ) ;
1212var Firestore = require ( '../../' ) . MockFirestore ;
13+ var Timestamp = require ( '../../src/timestamp' ) ;
1314
1415describe ( 'MockFirestoreCollection' , function ( ) {
1516
@@ -332,6 +333,36 @@ describe('MockFirestoreCollection', function () {
332333 done ( ) ;
333334 } ) . catch ( done ) ;
334335 } ) ;
336+
337+ it ( 'returns documents ordered by date' , function ( done ) {
338+ db . collection ( 'group' ) . doc ( ) . create ( {
339+ name : 'a' ,
340+ date : Timestamp . fromMillis ( 1000 )
341+ } ) . catch ( done ) ;
342+ db . flush ( ) ;
343+ db . collection ( 'group' ) . add ( {
344+ name : 'b' ,
345+ date : Timestamp . fromMillis ( 2000 )
346+ } ) . catch ( done ) ;
347+ db . flush ( ) ;
348+
349+ db . collection ( 'group' ) . orderBy ( 'date' , 'asc' ) . get ( ) . then ( function ( snap ) {
350+ expect ( snap . size ) . to . equal ( 2 ) ;
351+ expect ( snap . docs [ 0 ] . data ( ) . name ) . to . equal ( 'a' ) ;
352+ expect ( snap . docs [ 0 ] . data ( ) . date ) . to . have . property ( 'seconds' ) ;
353+ expect ( snap . docs [ 1 ] . data ( ) . name ) . to . equal ( 'b' ) ;
354+ expect ( snap . docs [ 1 ] . data ( ) . date ) . to . have . property ( 'seconds' ) ;
355+
356+ db . collection ( 'group' ) . orderBy ( 'date' , 'desc' ) . get ( ) . then ( function ( snap ) {
357+ expect ( snap . size ) . to . equal ( 2 ) ;
358+ expect ( snap . docs [ 0 ] . data ( ) . name ) . to . equal ( 'b' ) ;
359+ expect ( snap . docs [ 1 ] . data ( ) . name ) . to . equal ( 'a' ) ;
360+ done ( ) ;
361+ } ) . catch ( done ) ;
362+ db . flush ( ) ;
363+ } ) . catch ( done ) ;
364+ db . flush ( ) ;
365+ } ) ;
335366 } ) ;
336367
337368 describe ( '#limit' , function ( ) {
0 commit comments