File tree Expand file tree Collapse file tree 1 file changed +142
-0
lines changed Expand file tree Collapse file tree 1 file changed +142
-0
lines changed Original file line number Diff line number Diff line change
1
+ import { dateTypeOverride , RequiredFields } from './dateTypeOverride' ;
2
+
3
+ describe ( 'dateTypeOverride' , ( ) => {
4
+ it ( 'should replace the base type for the model combination {base: "string", format: "data-time"}' , async ( ) => {
5
+ const expected = JSON . parse ( JSON . stringify ( models ) ) as RequiredFields < ModelOnlyName > [ ] ;
6
+ expected [ 1 ] . properties [ 1 ] . base = 'Date' ;
7
+ if ( expected [ 3 ] . link ?. properties [ 0 ] . base ) {
8
+ expected [ 3 ] . link . properties [ 0 ] . base = 'Date' ;
9
+ }
10
+
11
+ const result = dateTypeOverride ( models ) ;
12
+ expect ( result ) . toEqual ( expected ) ;
13
+ } ) ;
14
+ } ) ;
15
+
16
+ type ModelOnlyName = { name : string } ;
17
+
18
+ const baseModel : Omit < RequiredFields < ModelOnlyName > , 'export' | 'base' | 'name' > = {
19
+ link : null ,
20
+ properties : [ ] ,
21
+ } ;
22
+
23
+ const models : RequiredFields < ModelOnlyName > [ ] = [
24
+ {
25
+ ...baseModel ,
26
+ name : 'ParentType' ,
27
+ export : 'interface' ,
28
+ base : 'any' ,
29
+ properties : [
30
+ {
31
+ ...baseModel ,
32
+ name : 'name' ,
33
+ export : 'interface' ,
34
+ base : 'any' ,
35
+ } ,
36
+ ] ,
37
+ } ,
38
+ {
39
+ ...baseModel ,
40
+ name : 'ExampleType' ,
41
+ export : 'interface' ,
42
+ base : 'any' ,
43
+ properties : [
44
+ {
45
+ ...baseModel ,
46
+ name : 'id' ,
47
+ export : 'generic' ,
48
+ base : 'number' ,
49
+ } ,
50
+ {
51
+ ...baseModel ,
52
+ name : 'dateTime' ,
53
+ export : 'generic' ,
54
+ base : 'string' ,
55
+ format : 'date-time' ,
56
+ } ,
57
+ {
58
+ ...baseModel ,
59
+ name : 'date' ,
60
+ export : 'generic' ,
61
+ base : 'string' ,
62
+ format : 'date' ,
63
+ } ,
64
+ {
65
+ ...baseModel ,
66
+ name : 'dateTimeNullable' ,
67
+ export : 'generic' ,
68
+ base : 'string' ,
69
+ format : 'date' ,
70
+ } ,
71
+ {
72
+ ...baseModel ,
73
+ name : 'dateNullable' ,
74
+ export : 'generic' ,
75
+ base : 'string' ,
76
+ format : 'date' ,
77
+ } ,
78
+ ] ,
79
+ } ,
80
+ {
81
+ ...baseModel ,
82
+ name : 'InheritType' ,
83
+ export : 'all-of' ,
84
+ base : 'any' ,
85
+ properties : [
86
+ {
87
+ ...baseModel ,
88
+ name : '' ,
89
+ export : 'reference' ,
90
+ base : 'ParentType' ,
91
+ } ,
92
+ {
93
+ ...baseModel ,
94
+ name : '' ,
95
+ export : 'reference' ,
96
+ base : 'ExampleType' ,
97
+ } ,
98
+ ] ,
99
+ } ,
100
+ {
101
+ ...baseModel ,
102
+ name : 'WrappedInArray' ,
103
+ export : 'array' ,
104
+ base : 'any' ,
105
+ link : {
106
+ ...baseModel ,
107
+ name : '' ,
108
+ export : 'interface' ,
109
+ base : 'any' ,
110
+ properties : [
111
+ {
112
+ ...baseModel ,
113
+ name : 'dateTime' ,
114
+ export : 'generic' ,
115
+ base : 'string' ,
116
+ format : 'date-time' ,
117
+ } ,
118
+ {
119
+ ...baseModel ,
120
+ name : 'date' ,
121
+ export : 'generic' ,
122
+ base : 'string' ,
123
+ format : 'date' ,
124
+ } ,
125
+ {
126
+ ...baseModel ,
127
+ name : 'dateTimeNullable' ,
128
+ export : 'generic' ,
129
+ base : 'string' ,
130
+ format : 'date' ,
131
+ } ,
132
+ {
133
+ ...baseModel ,
134
+ name : 'dateNullable' ,
135
+ export : 'generic' ,
136
+ base : 'string' ,
137
+ format : 'date' ,
138
+ } ,
139
+ ] ,
140
+ } ,
141
+ } ,
142
+ ] ;
You can’t perform that action at this time.
0 commit comments