@@ -25,7 +25,17 @@ describe('services > requested-fields-extractor', () => {
25
25
associations : { } ,
26
26
} ;
27
27
28
- const result = extractRequestedFields ( fields , model ) ;
28
+ const schemas = {
29
+ user : {
30
+ name : 'user' ,
31
+ fields : [ {
32
+ field : 'name' ,
33
+ isVirtual : false ,
34
+ } ] ,
35
+ } ,
36
+ } ;
37
+
38
+ const result = extractRequestedFields ( fields , model , schemas ) ;
29
39
30
40
expect ( result ) . toStrictEqual ( [ 'id' , 'name' ] ) ;
31
41
} ) ;
@@ -43,7 +53,17 @@ describe('services > requested-fields-extractor', () => {
43
53
associations : { } ,
44
54
} ;
45
55
46
- const result = extractRequestedFields ( fields , model ) ;
56
+ const schemas = {
57
+ user : {
58
+ name : 'user' ,
59
+ fields : [ {
60
+ field : 'name' ,
61
+ isVirtual : false ,
62
+ } ] ,
63
+ } ,
64
+ } ;
65
+
66
+ const result = extractRequestedFields ( fields , model , schemas ) ;
47
67
48
68
expect ( result ) . toStrictEqual ( [ 'id' , 'name' ] ) ;
49
69
} ) ;
@@ -70,7 +90,15 @@ describe('services > requested-fields-extractor', () => {
70
90
} ;
71
91
72
92
const schemas = {
93
+ user : {
94
+ name : 'user' ,
95
+ fields : [ {
96
+ field : 'name' ,
97
+ isVirtual : false ,
98
+ } ] ,
99
+ } ,
73
100
addresses : {
101
+ name : 'addresses' ,
74
102
fields : [ {
75
103
field : 'street' ,
76
104
isVirtual : false ,
@@ -105,7 +133,15 @@ describe('services > requested-fields-extractor', () => {
105
133
} ;
106
134
107
135
const schemas = {
136
+ user : {
137
+ name : 'user' ,
138
+ fields : [ {
139
+ field : 'name' ,
140
+ isVirtual : false ,
141
+ } ] ,
142
+ } ,
108
143
addresses : {
144
+ name : 'addresses' ,
109
145
fields : [
110
146
{
111
147
field : 'street' ,
@@ -147,7 +183,15 @@ describe('services > requested-fields-extractor', () => {
147
183
} ;
148
184
149
185
const schemas = {
186
+ user : {
187
+ name : 'user' ,
188
+ fields : [ {
189
+ field : 'name' ,
190
+ isVirtual : false ,
191
+ } ] ,
192
+ } ,
150
193
addresses : {
194
+ name : 'addresses' ,
151
195
fields : [
152
196
{
153
197
field : 'street' ,
@@ -166,4 +210,38 @@ describe('services > requested-fields-extractor', () => {
166
210
'homeAddress' ,
167
211
] ) ;
168
212
} ) ;
213
+
214
+ it ( 'should include requested smart field' , ( ) => {
215
+ expect . assertions ( 1 ) ;
216
+
217
+ const fields = {
218
+ user : 'smartField' ,
219
+ } ;
220
+
221
+ const model = {
222
+ name : 'user' ,
223
+ primaryKeys : { id : null , uid : null } ,
224
+ associations : { } ,
225
+ } ;
226
+
227
+ const schemas = {
228
+ user : {
229
+ name : 'user' ,
230
+ fields : [ {
231
+ field : 'smartField' ,
232
+ isVirtual : true ,
233
+ } , {
234
+ field : 'anotherSmartField' ,
235
+ isVirtual : true ,
236
+ } ] ,
237
+ } ,
238
+ } ;
239
+
240
+ const result = extractRequestedFields ( fields , model , schemas ) ;
241
+
242
+ expect ( result ) . toStrictEqual ( [
243
+ 'id' ,
244
+ 'smartField' ,
245
+ ] ) ;
246
+ } ) ;
169
247
} ) ;
0 commit comments