@@ -639,52 +639,17 @@ describe('Database Functions', () => {
639
639
expect ( subject . val ( ) ) . to . equal ( 0 ) ;
640
640
populate ( { myKey : 0 } ) ;
641
641
expect ( subject . val ( ) ) . to . deep . equal ( { myKey : 0 } ) ;
642
+
643
+ // Null values are still reported as null.
644
+ populate ( { myKey : null } ) ;
645
+ expect ( subject . val ( ) ) . to . deep . equal ( { myKey : null } ) ;
642
646
} ) ;
643
647
644
648
// Regression test: .val() was returning array of nulls when there's a property called length (BUG#37683995)
645
649
it ( 'should return correct values when data has "length" property' , ( ) => {
646
650
populate ( { length : 3 , foo : 'bar' } ) ;
647
651
expect ( subject . val ( ) ) . to . deep . equal ( { length : 3 , foo : 'bar' } ) ;
648
652
} ) ;
649
-
650
- it ( 'should deal with null-values appropriately' , ( ) => {
651
- populate ( null ) ;
652
- expect ( subject . val ( ) ) . to . be . null ;
653
-
654
- populate ( { myKey : null } ) ;
655
- expect ( subject . val ( ) ) . to . be . null ;
656
- } ) ;
657
-
658
- it ( 'should deal with empty object values appropriately' , ( ) => {
659
- populate ( { } ) ;
660
- expect ( subject . val ( ) ) . to . be . null ;
661
-
662
- populate ( { myKey : { } } ) ;
663
- expect ( subject . val ( ) ) . to . be . null ;
664
-
665
- populate ( { myKey : { child : null } } ) ;
666
- expect ( subject . val ( ) ) . to . be . null ;
667
- } ) ;
668
-
669
- it ( 'should deal with empty array values appropriately' , ( ) => {
670
- populate ( [ ] ) ;
671
- expect ( subject . val ( ) ) . to . be . null ;
672
-
673
- populate ( { myKey : [ ] } ) ;
674
- expect ( subject . val ( ) ) . to . be . null ;
675
-
676
- populate ( { myKey : [ null ] } ) ;
677
- expect ( subject . val ( ) ) . to . be . null ;
678
-
679
- populate ( { myKey : [ { } ] } ) ;
680
- expect ( subject . val ( ) ) . to . be . null ;
681
-
682
- populate ( { myKey : [ { myKey : null } ] } ) ;
683
- expect ( subject . val ( ) ) . to . be . null ;
684
-
685
- populate ( { myKey : [ { myKey : { } } ] } ) ;
686
- expect ( subject . val ( ) ) . to . be . null ;
687
- } ) ;
688
653
} ) ;
689
654
690
655
describe ( '#child(): DataSnapshot' , ( ) => {
@@ -711,37 +676,14 @@ describe('Database Functions', () => {
711
676
} ) ;
712
677
713
678
it ( 'should be false for a non-existent value' , ( ) => {
714
- populate ( { a : { b : 'c' , nullChild : null } } ) ;
679
+ populate ( { a : { b : 'c' } } ) ;
715
680
expect ( subject . child ( 'd' ) . exists ( ) ) . to . be . false ;
716
- expect ( subject . child ( 'nullChild' ) . exists ( ) ) . to . be . false ;
717
681
} ) ;
718
682
719
683
it ( 'should be false for a value pathed beyond a leaf' , ( ) => {
720
684
populate ( { a : { b : 'c' } } ) ;
721
685
expect ( subject . child ( 'a/b/c' ) . exists ( ) ) . to . be . false ;
722
686
} ) ;
723
-
724
- it ( 'should be false for an empty object value' , ( ) => {
725
- populate ( { a : { } } ) ;
726
- expect ( subject . child ( 'a' ) . exists ( ) ) . to . be . false ;
727
-
728
- populate ( { a : { child : null } } ) ;
729
- expect ( subject . child ( 'a' ) . exists ( ) ) . to . be . false ;
730
-
731
- populate ( { a : { child : { } } } ) ;
732
- expect ( subject . child ( 'a' ) . exists ( ) ) . to . be . false ;
733
- } ) ;
734
-
735
- it ( 'should be false for an empty array value' , ( ) => {
736
- populate ( { a : [ ] } ) ;
737
- expect ( subject . child ( 'a' ) . exists ( ) ) . to . be . false ;
738
-
739
- populate ( { a : [ null ] } ) ;
740
- expect ( subject . child ( 'a' ) . exists ( ) ) . to . be . false ;
741
-
742
- populate ( { a : [ { } ] } ) ;
743
- expect ( subject . child ( 'a' ) . exists ( ) ) . to . be . false ;
744
- } ) ;
745
687
} ) ;
746
688
747
689
describe ( '#forEach(action: (a: DataSnapshot) => boolean): boolean' , ( ) => {
@@ -770,17 +712,6 @@ describe('Database Functions', () => {
770
712
771
713
expect ( subject . forEach ( counter ) ) . to . equal ( false ) ;
772
714
expect ( count ) . to . eq ( 0 ) ;
773
-
774
- populate ( {
775
- a : 'foo' ,
776
- nullChild : null ,
777
- emptyObjectChild : { } ,
778
- emptyArrayChild : [ ] ,
779
- } ) ;
780
- count = 0 ;
781
-
782
- expect ( subject . forEach ( counter ) ) . to . equal ( false ) ;
783
- expect ( count ) . to . eq ( 1 ) ;
784
715
} ) ;
785
716
786
717
it ( 'should cancel further enumeration if callback returns true' , ( ) => {
@@ -820,51 +751,13 @@ describe('Database Functions', () => {
820
751
821
752
describe ( '#numChildren()' , ( ) => {
822
753
it ( 'should be key count for objects' , ( ) => {
823
- populate ( {
824
- a : 'b' ,
825
- c : 'd' ,
826
- nullChild : null ,
827
- emptyObjectChild : { } ,
828
- emptyArrayChild : [ ] ,
829
- } ) ;
754
+ populate ( { a : 'b' , c : 'd' } ) ;
830
755
expect ( subject . numChildren ( ) ) . to . eq ( 2 ) ;
831
756
} ) ;
832
757
833
758
it ( 'should be 0 for non-objects' , ( ) => {
834
759
populate ( 23 ) ;
835
760
expect ( subject . numChildren ( ) ) . to . eq ( 0 ) ;
836
-
837
- populate ( {
838
- nullChild : null ,
839
- emptyObjectChild : { } ,
840
- emptyArrayChild : [ ] ,
841
- } ) ;
842
- expect ( subject . numChildren ( ) ) . to . eq ( 0 ) ;
843
- } ) ;
844
- } ) ;
845
-
846
- describe ( '#hasChildren()' , ( ) => {
847
- it ( 'should true for objects' , ( ) => {
848
- populate ( {
849
- a : 'b' ,
850
- c : 'd' ,
851
- nullChild : null ,
852
- emptyObjectChild : { } ,
853
- emptyArrayChild : [ ] ,
854
- } ) ;
855
- expect ( subject . hasChildren ( ) ) . to . be . true ;
856
- } ) ;
857
-
858
- it ( 'should be false for non-objects' , ( ) => {
859
- populate ( 23 ) ;
860
- expect ( subject . hasChildren ( ) ) . to . be . false ;
861
-
862
- populate ( {
863
- nullChild : null ,
864
- emptyObjectChild : { } ,
865
- emptyArrayChild : [ ] ,
866
- } ) ;
867
- expect ( subject . hasChildren ( ) ) . to . be . false ;
868
761
} ) ;
869
762
} ) ;
870
763
@@ -876,17 +769,9 @@ describe('Database Functions', () => {
876
769
} ) ;
877
770
878
771
it ( 'should return false if a child is missing' , ( ) => {
879
- populate ( {
880
- a : 'b' ,
881
- nullChild : null ,
882
- emptyObjectChild : { } ,
883
- emptyArrayChild : [ ] ,
884
- } ) ;
772
+ populate ( { a : 'b' } ) ;
885
773
expect ( subject . hasChild ( 'c' ) ) . to . be . false ;
886
774
expect ( subject . hasChild ( 'a/b' ) ) . to . be . false ;
887
- expect ( subject . hasChild ( 'nullChild' ) ) . to . be . false ;
888
- expect ( subject . hasChild ( 'emptyObjectChild' ) ) . to . be . false ;
889
- expect ( subject . hasChild ( 'emptyArrayChild' ) ) . to . be . false ;
890
775
} ) ;
891
776
} ) ;
892
777
@@ -916,21 +801,11 @@ describe('Database Functions', () => {
916
801
917
802
describe ( '#toJSON(): Object' , ( ) => {
918
803
it ( 'should return the current value' , ( ) => {
919
- populate ( {
920
- a : 'b' ,
921
- nullChild : null ,
922
- emptyObjectChild : { } ,
923
- emptyArrayChild : [ ] ,
924
- } ) ;
804
+ populate ( { a : 'b' } ) ;
925
805
expect ( subject . toJSON ( ) ) . to . deep . equal ( subject . val ( ) ) ;
926
806
} ) ;
927
807
it ( 'should be stringifyable' , ( ) => {
928
- populate ( {
929
- a : 'b' ,
930
- nullChild : null ,
931
- emptyObjectChild : { } ,
932
- emptyArrayChild : [ ] ,
933
- } ) ;
808
+ populate ( { a : 'b' } ) ;
934
809
expect ( JSON . stringify ( subject ) ) . to . deep . equal ( '{"a":"b"}' ) ;
935
810
} ) ;
936
811
} ) ;
0 commit comments