1
1
import { MetaTypeCreator } from './metaTypeCreator'
2
2
import { MetaType } from './metaType'
3
3
import { Timestamp , Bytes , GeoPoint } from '../alias'
4
- import {
5
- ErrorNullBanned ,
6
- ErrorDirectNested ,
7
- ErrorFieldValueInArray ,
8
- } from '../error'
4
+ import { ErrorNullBanned , ErrorDirectNested } from '../error'
9
5
import {
10
6
ArrayUnionOrRemove ,
11
7
Increment ,
@@ -17,14 +13,7 @@ import { DocumentReference } from '../refs'
17
13
import { IsTrue , IsSame , IsEqual } from '../utils'
18
14
import { Parent , User } from '../../utilForTests'
19
15
import { __name__Record } from '../fieldPath'
20
- import {
21
- JSONDate ,
22
- JSONGeoPoint ,
23
- JSONServerTimestamp ,
24
- JSONDocumentReference ,
25
- JSONTimestamp ,
26
- } from '../json'
27
- import { OmitSymbol } from './read'
16
+ import { JSONDocumentReference , JSONTimestamp } from '../json'
28
17
29
18
describe ( 'test Firelord type' , ( ) => {
30
19
it ( 'test parents equal' , ( ) => {
@@ -71,6 +60,27 @@ describe('test Firelord type', () => {
71
60
l : { a : 1 | undefined } | { b : 2 | undefined } | undefined
72
61
}
73
62
63
+ type ExpectedJSON = {
64
+ a : 1 | null | undefined
65
+ b :
66
+ | {
67
+ c : 'a' | undefined
68
+ d : { e : false | undefined } | undefined
69
+ f :
70
+ | {
71
+ g : JSONTimestamp | null | undefined
72
+ h : 2 | undefined
73
+ } [ ]
74
+ | undefined
75
+ j : JSONTimestamp | null | undefined
76
+ k : JSONDocumentReference < MetaType > | null | undefined
77
+ }
78
+ | undefined
79
+ h : string | undefined
80
+ i : number | null | undefined
81
+ l : { a : 1 | undefined } | { b : 2 | undefined } | undefined
82
+ }
83
+
74
84
type ExpectedWrite = {
75
85
a : 1 | null
76
86
b : {
@@ -177,11 +187,13 @@ describe('test Firelord type', () => {
177
187
type Write = A [ 'write' ]
178
188
type WriteFlatten = A [ 'writeFlatten' ]
179
189
type Compare = A [ 'compare' ]
190
+ type JSON = A [ 'readJSON' ]
180
191
181
192
IsTrue < IsSame < ExpectedRead , Read > > ( )
182
193
IsTrue < IsSame < ExpectedWrite , Write > > ( )
183
194
IsTrue < IsEqual < ExpectedWriteFlatten , WriteFlatten > > ( )
184
195
IsTrue < IsEqual < ExpectedCompare , Compare > > ( )
196
+ IsTrue < IsEqual < ExpectedJSON , JSON > > ( )
185
197
} )
186
198
187
199
it ( 'test possibly read undefined' , ( ) => {
@@ -805,79 +817,4 @@ describe('test Firelord type', () => {
805
817
IsTrue < IsSame < ExpectWriteMerge , Write > >
806
818
IsTrue < IsSame < ExpectCompare , Compare > >
807
819
} )
808
- it ( 'test persistent type' , ( ) => {
809
- type A = MetaTypeCreator <
810
- {
811
- a : JSONTimestamp
812
- b : JSONDate
813
- c : JSONServerTimestamp
814
- d : JSONDocumentReference < MetaType >
815
- e : JSONGeoPoint
816
- f : JSONTimestamp [ ]
817
- g : JSONDate [ ]
818
- h : JSONServerTimestamp [ ]
819
- i : JSONDocumentReference < MetaType > [ ]
820
- j : JSONGeoPoint [ ]
821
- } ,
822
- 'Persist'
823
- >
824
-
825
- type ExpectRead = A [ 'read' ]
826
- type ExpectWrite = A [ 'write' ]
827
- type ExpectWriteFlatten = A [ 'writeFlatten' ]
828
- type ExpectWriteMerge = A [ 'writeMerge' ]
829
- type ExpectCompare = A [ 'compare' ]
830
-
831
- type Read = {
832
- a : OmitSymbol < JSONTimestamp >
833
- b : OmitSymbol < JSONTimestamp >
834
- c : OmitSymbol < JSONTimestamp >
835
- d : OmitSymbol < JSONDocumentReference < MetaType > >
836
- e : OmitSymbol < JSONGeoPoint >
837
- f : OmitSymbol < JSONTimestamp > [ ]
838
- g : OmitSymbol < JSONTimestamp > [ ]
839
- h : ErrorFieldValueInArray [ ]
840
- i : OmitSymbol < JSONDocumentReference < MetaType > > [ ]
841
- j : OmitSymbol < JSONGeoPoint > [ ]
842
- }
843
-
844
- type Write = {
845
- a : Timestamp | Date
846
- b : Timestamp | Date
847
- c : ServerTimestamp
848
- d : DocumentReference < MetaType >
849
- e : GeoPoint
850
- f : readonly ( Timestamp | Date ) [ ] | ArrayUnionOrRemove < Timestamp | Date >
851
- g : readonly ( Timestamp | Date ) [ ] | ArrayUnionOrRemove < Timestamp | Date >
852
- h :
853
- | readonly ErrorFieldValueInArray [ ]
854
- | ArrayUnionOrRemove < ErrorFieldValueInArray >
855
- i :
856
- | readonly DocumentReference < MetaType > [ ]
857
- | ArrayUnionOrRemove < DocumentReference < MetaType > >
858
- j : readonly GeoPoint [ ] | ArrayUnionOrRemove < GeoPoint >
859
- }
860
-
861
- // TODO need better tests
862
- type WriteFlatten = Write
863
- type WriteMerge = Write
864
- type Compare = {
865
- a : Timestamp | Date
866
- b : Timestamp | Date
867
- c : Timestamp | Date
868
- d : DocumentReference < MetaType >
869
- e : GeoPoint
870
- f : readonly ( Timestamp | Date ) [ ]
871
- g : readonly ( Timestamp | Date ) [ ]
872
- h : readonly ErrorFieldValueInArray [ ]
873
- i : readonly DocumentReference < MetaType > [ ]
874
- j : readonly GeoPoint [ ]
875
- } & __name__Record
876
-
877
- IsTrue < IsSame < ExpectRead , Read > >
878
- IsTrue < IsSame < ExpectWrite , Write > >
879
- IsTrue < IsSame < ExpectWriteFlatten , WriteFlatten > >
880
- IsTrue < IsSame < ExpectWriteMerge , WriteMerge > >
881
- IsTrue < IsSame < ExpectCompare , Compare > >
882
- } )
883
820
} )
0 commit comments