@@ -349,4 +349,56 @@ describe('MockFirestoreDocument', function () {
349349 expect ( result ) . to . eventually . equal ( null ) ;
350350 } ) ;
351351 } ) ;
352+
353+ describe ( '#getCollections' , function ( ) {
354+ beforeEach ( function ( ) {
355+ db . doc ( 'doc/subcol/subcol-doc' ) . set ( { foo : 'bar' } ) ;
356+ db . doc ( 'doc/subcol2/subcol-doc' ) . set ( { foo : 'bar' } ) ;
357+ db . doc ( 'doc/subcol/subcol-doc/deep-col/deep-doc' ) . set ( { foo : 'bar' } ) ;
358+ db . doc ( 'doc/subcol/subcol-doc/deep-col2/deep-doc' ) . set ( { foo : 'bar' } ) ;
359+ db . flush ( ) ;
360+ } ) ;
361+ afterEach ( function ( ) {
362+ db . doc ( 'doc/subcol/subcol-doc' ) . delete ( ) ;
363+ db . doc ( 'doc/subcol2/subcol-doc' ) . delete ( ) ;
364+ db . doc ( 'doc/subcol/subcol-doc/deep-col/deep-doc' ) . delete ( ) ;
365+ db . doc ( 'doc/subcol/subcol-doc/deep-col2/deep-doc' ) . delete ( ) ;
366+ db . flush ( ) ;
367+ } ) ;
368+
369+ context ( 'when present' , function ( ) {
370+ it ( 'returns collections of document' , function ( done ) {
371+ db . doc ( 'doc' ) . getCollections ( ) . then ( function ( colRefs ) {
372+ expect ( colRefs ) . to . be . an ( 'array' ) ;
373+ expect ( colRefs ) . to . have . length ( 2 ) ;
374+ expect ( colRefs [ 0 ] . path ) . to . equal ( 'doc/subcol' ) ;
375+ expect ( colRefs [ 1 ] . path ) . to . equal ( 'doc/subcol2' ) ;
376+ done ( ) ;
377+ } ) ;
378+ db . flush ( ) ;
379+ } ) ;
380+
381+ it ( 'returns deeply nested collections of document' , function ( done ) {
382+ db . doc ( 'doc/subcol/subcol-doc' ) . getCollections ( ) . then ( function ( colRefs ) {
383+ expect ( colRefs ) . to . be . an ( 'array' ) ;
384+ expect ( colRefs ) . to . have . length ( 2 ) ;
385+ expect ( colRefs [ 0 ] . path ) . to . equal ( 'doc/subcol/subcol-doc/deep-col' ) ;
386+ expect ( colRefs [ 1 ] . path ) . to . equal ( 'doc/subcol/subcol-doc/deep-col2' ) ;
387+ done ( ) ;
388+ } ) ;
389+ db . flush ( ) ;
390+ } ) ;
391+ } ) ;
392+
393+ context ( 'when not present' , function ( ) {
394+ it ( 'returns deeply nested collections of document' , function ( done ) {
395+ db . doc ( 'not-existing' ) . getCollections ( ) . then ( function ( colRefs ) {
396+ expect ( colRefs ) . to . be . an ( 'array' ) ;
397+ expect ( colRefs ) . to . have . length ( 0 ) ;
398+ done ( ) ;
399+ } ) ;
400+ db . flush ( ) ;
401+ } ) ;
402+ } ) ;
403+ } ) ;
352404} ) ;
0 commit comments