@@ -110,6 +110,97 @@ describe('Contentstack Entry test', () => {
110110 . catch ( done )
111111 } )
112112
113+ it ( 'Entry Query test with asset_fields parameter - single value' , done => {
114+ var mock = new MockAdapter ( Axios )
115+ mock . onGet ( '/content_types/content_type_uid/entries' , ( config ) => {
116+ // Check if asset_fields parameter is present in the request
117+ const assetFields = config . params && ( config . params [ 'asset_fields[]' ] || config . params . asset_fields )
118+ if ( Array . isArray ( assetFields ) ) {
119+ return assetFields . includes ( 'user_defined_fields' )
120+ }
121+ // Also check URL if params are serialized
122+ if ( config . url && config . url . includes ( 'asset_fields' ) ) {
123+ return config . url . includes ( 'user_defined_fields' )
124+ }
125+ return false
126+ } ) . reply ( 200 , {
127+ entries : [
128+ entryMock
129+ ]
130+ } )
131+ makeEntry ( )
132+ . query ( { asset_fields : [ 'user_defined_fields' ] } )
133+ . find ( )
134+ . then ( ( entry ) => {
135+ checkEntry ( entry . items [ 0 ] )
136+ done ( )
137+ } )
138+ . catch ( done )
139+ } )
140+
141+ it ( 'Entry Query test with asset_fields parameter - multiple values' , done => {
142+ var mock = new MockAdapter ( Axios )
143+ mock . onGet ( '/content_types/content_type_uid/entries' , ( config ) => {
144+ // Check if asset_fields parameter is present in the request
145+ const assetFields = config . params && ( config . params [ 'asset_fields[]' ] || config . params . asset_fields )
146+ if ( Array . isArray ( assetFields ) ) {
147+ return assetFields . includes ( 'user_defined_fields' ) &&
148+ assetFields . includes ( 'embedded' ) &&
149+ assetFields . includes ( 'ai_suggested' ) &&
150+ assetFields . includes ( 'visual_markups' )
151+ }
152+ // Also check URL if params are serialized
153+ if ( config . url && config . url . includes ( 'asset_fields' ) ) {
154+ return config . url . includes ( 'user_defined_fields' ) &&
155+ config . url . includes ( 'embedded' ) &&
156+ config . url . includes ( 'ai_suggested' ) &&
157+ config . url . includes ( 'visual_markups' )
158+ }
159+ return false
160+ } ) . reply ( 200 , {
161+ entries : [
162+ entryMock
163+ ]
164+ } )
165+ makeEntry ( )
166+ . query ( { asset_fields : [ 'user_defined_fields' , 'embedded' , 'ai_suggested' , 'visual_markups' ] } )
167+ . find ( )
168+ . then ( ( entry ) => {
169+ checkEntry ( entry . items [ 0 ] )
170+ done ( )
171+ } )
172+ . catch ( done )
173+ } )
174+
175+ it ( 'Entry Query test with asset_fields parameter combined with other query params' , done => {
176+ var mock = new MockAdapter ( Axios )
177+ mock . onGet ( '/content_types/content_type_uid/entries' , ( config ) => {
178+ // Check if asset_fields parameter is present in the request
179+ const assetFields = config . params && ( config . params [ 'asset_fields[]' ] || config . params . asset_fields )
180+ const hasAssetFields = Array . isArray ( assetFields )
181+ ? ( assetFields . includes ( 'user_defined_fields' ) && assetFields . includes ( 'embedded' ) )
182+ : ( config . url && config . url . includes ( 'asset_fields' ) && config . url . includes ( 'user_defined_fields' ) && config . url . includes ( 'embedded' ) )
183+ return hasAssetFields && config . params && config . params . include_count === true
184+ } ) . reply ( 200 , {
185+ entries : [
186+ entryMock
187+ ] ,
188+ count : 1
189+ } )
190+ makeEntry ( )
191+ . query ( {
192+ asset_fields : [ 'user_defined_fields' , 'embedded' ] ,
193+ include_count : true
194+ } )
195+ . find ( )
196+ . then ( ( entry ) => {
197+ checkEntry ( entry . items [ 0 ] )
198+ expect ( entry . count ) . to . be . equal ( 1 )
199+ done ( )
200+ } )
201+ . catch ( done )
202+ } )
203+
113204 it ( 'Entry update test' , done => {
114205 var mock = new MockAdapter ( Axios )
115206 mock . onPut ( '/content_types/content_type_uid/entries/UID' ) . reply ( 200 , {
@@ -152,6 +243,76 @@ describe('Contentstack Entry test', () => {
152243 . catch ( done )
153244 } )
154245
246+ it ( 'Entry fetch test with asset_fields parameter - single value' , done => {
247+ var mock = new MockAdapter ( Axios )
248+ mock . onGet ( '/content_types/content_type_uid/entries/UID' , ( config ) => {
249+ // Check if asset_fields parameter is present in the request
250+ const assetFields = config . params && ( config . params [ 'asset_fields[]' ] || config . params . asset_fields )
251+ if ( Array . isArray ( assetFields ) ) {
252+ return assetFields . includes ( 'user_defined_fields' )
253+ }
254+ // Also check URL if params are serialized
255+ if ( config . url && config . url . includes ( 'asset_fields' ) ) {
256+ return config . url . includes ( 'user_defined_fields' )
257+ }
258+ return false
259+ } ) . reply ( 200 , {
260+ entry : {
261+ ...entryMock
262+ }
263+ } )
264+ makeEntry ( {
265+ entry : {
266+ ...systemUidMock
267+ } ,
268+ stackHeaders : stackHeadersMock
269+ } )
270+ . fetch ( { asset_fields : [ 'user_defined_fields' ] } )
271+ . then ( ( entry ) => {
272+ checkEntry ( entry )
273+ done ( )
274+ } )
275+ . catch ( done )
276+ } )
277+
278+ it ( 'Entry fetch test with asset_fields parameter - multiple values' , done => {
279+ var mock = new MockAdapter ( Axios )
280+ mock . onGet ( '/content_types/content_type_uid/entries/UID' , ( config ) => {
281+ // Check if asset_fields parameter is present in the request
282+ const assetFields = config . params && ( config . params [ 'asset_fields[]' ] || config . params . asset_fields )
283+ if ( Array . isArray ( assetFields ) ) {
284+ return assetFields . includes ( 'user_defined_fields' ) &&
285+ assetFields . includes ( 'embedded' ) &&
286+ assetFields . includes ( 'ai_suggested' ) &&
287+ assetFields . includes ( 'visual_markups' )
288+ }
289+ // Also check URL if params are serialized
290+ if ( config . url && config . url . includes ( 'asset_fields' ) ) {
291+ return config . url . includes ( 'user_defined_fields' ) &&
292+ config . url . includes ( 'embedded' ) &&
293+ config . url . includes ( 'ai_suggested' ) &&
294+ config . url . includes ( 'visual_markups' )
295+ }
296+ return false
297+ } ) . reply ( 200 , {
298+ entry : {
299+ ...entryMock
300+ }
301+ } )
302+ makeEntry ( {
303+ entry : {
304+ ...systemUidMock
305+ } ,
306+ stackHeaders : stackHeadersMock
307+ } )
308+ . fetch ( { asset_fields : [ 'user_defined_fields' , 'embedded' , 'ai_suggested' , 'visual_markups' ] } )
309+ . then ( ( entry ) => {
310+ checkEntry ( entry )
311+ done ( )
312+ } )
313+ . catch ( done )
314+ } )
315+
155316 it ( 'Entry delete test' , done => {
156317 var mock = new MockAdapter ( Axios )
157318 mock . onDelete ( '/content_types/content_type_uid/entries/UID' ) . reply ( 200 , {
0 commit comments