@@ -3,6 +3,7 @@ import nock from "nock";
33import * as mocks from "./stubs" ;
44
55import { DynamicsWebApi , type RetrieveMultipleRequest } from "../src/dynamics-web-api" ;
6+ import { DWA } from "../lib/dwa" ;
67
78const dynamicsWebApiTest = new DynamicsWebApi ( {
89 dataApi : {
@@ -167,6 +168,93 @@ describe("dynamicsWebApi.retrieveMultiple -", () => {
167168 } ) ;
168169} ) ;
169170
171+ describe ( "dynamicsWebApi.fetch -" , ( ) => {
172+ describe ( "with token" , function ( ) {
173+ let scope : nock . Scope ;
174+ const testToken = "test token" ;
175+ before ( function ( ) {
176+ const response = mocks . responses . fetchXmlResponsePage2Cookie ;
177+ scope = nock ( mocks . webApiUrl , {
178+ reqheaders : {
179+ Authorization : `Bearer ${ testToken } ` ,
180+ Prefer : DWA . Prefer . get ( DWA . Prefer . Annotations . FormattedValue ) ,
181+ } ,
182+ } )
183+ . get ( mocks . responses . collectionUrl + "?fetchXml=" + encodeURIComponent ( mocks . data . fetchXmls . fetchXml2cookie ) )
184+ . reply ( response . status , response . responseText , response . responseHeaders ) ;
185+ } ) ;
186+
187+ after ( function ( ) {
188+ nock . cleanAll ( ) ;
189+ } ) ;
190+
191+ it ( "returns a correct response" , async ( ) => {
192+ const pagingInfo = mocks . data . fetchXmls . fetchXmlResultPage1Cookie . PagingInfo ;
193+
194+ try {
195+ const object = await dynamicsWebApiTest . fetch ( {
196+ collection : "tests" ,
197+ fetchXml : mocks . data . fetchXmls . fetchXml ,
198+ includeAnnotations : DWA . Prefer . Annotations . FormattedValue ,
199+ pageNumber : pagingInfo . nextPage ,
200+ pagingCookie : pagingInfo . cookie ,
201+ token : testToken ,
202+ } ) ;
203+
204+ expect ( object ) . to . deep . equal ( mocks . data . fetchXmls . fetchXmlResultPage2Cookie ) ;
205+ } catch ( error ) {
206+ console . error ( error ) ;
207+ throw error ;
208+ }
209+ } ) ;
210+
211+ it ( "all requests have been made" , function ( ) {
212+ expect ( scope . isDone ( ) ) . to . be . true ;
213+ } ) ;
214+ } ) ;
215+ } ) ;
216+
217+ describe ( "dynamicsWebApi.fetchAll -" , ( ) => {
218+ describe ( "with token" , function ( ) {
219+ let scope : nock . Scope ;
220+ const testToken = "test token" ;
221+ before ( function ( ) {
222+ var response = mocks . responses . fetchXmlResponsePage1Cookie ;
223+ var response2 = mocks . responses . fetchXmlResponsePage2NoCookie ;
224+ scope = nock ( mocks . webApiUrl , {
225+ reqheaders : {
226+ Authorization : `Bearer ${ testToken } ` ,
227+ } ,
228+ } )
229+ . get ( mocks . responses . collectionUrl + "?fetchXml=" + encodeURIComponent ( mocks . data . fetchXmls . fetchXml1 ) )
230+ . reply ( response . status , response . responseText , response . responseHeaders )
231+ . get ( mocks . responses . collectionUrl + "?fetchXml=" + encodeURIComponent ( mocks . data . fetchXmls . fetchXml2cookie ) )
232+ . reply ( response2 . status , response2 . responseText , response2 . responseHeaders ) ;
233+ } ) ;
234+
235+ after ( function ( ) {
236+ nock . cleanAll ( ) ;
237+ } ) ;
238+
239+ it ( "returns a correct response" , async ( ) => {
240+ try {
241+ const object = await dynamicsWebApiTest . fetchAll ( { collection : "tests" , fetchXml : mocks . data . fetchXmls . fetchXml , token : testToken } ) ;
242+
243+ let checkResponse = mocks . data . fetchXmls . fetchXmlResultPage1Cookie . value ;
244+ checkResponse = checkResponse . concat ( mocks . data . fetchXmls . fetchXmlResultPage2Cookie . value ) ;
245+ expect ( object ) . to . deep . equal ( { value : checkResponse } ) ;
246+ } catch ( error ) {
247+ console . error ( error ) ;
248+ throw error ;
249+ }
250+ } ) ;
251+
252+ it ( "all requests have been made" , function ( ) {
253+ expect ( scope . isDone ( ) ) . to . be . true ;
254+ } ) ;
255+ } ) ;
256+ } ) ;
257+
170258describe ( "dynamicsWebApi.executeBatch -" , ( ) => {
171259 describe ( "non-atomic global - create / create (Content-ID in a header gets cleared)" , function ( ) {
172260 let scope ;
@@ -621,7 +709,7 @@ describe("dynamicsWebApi.callFunction -", () => {
621709 name : "FUN" ,
622710 parameters : { param1 : "value1" , param2 : 2 } ,
623711 select : [ "field1" , "field2" ] ,
624- filter : "field1 eq 1"
712+ filter : "field1 eq 1" ,
625713 } ) ;
626714
627715 expect ( object ) . to . deep . equal ( mocks . data . testEntity ) ;
@@ -655,7 +743,7 @@ describe("dynamicsWebApi.callFunction -", () => {
655743 functionName : "FUN" ,
656744 parameters : { param1 : "value1" , param2 : 2 } ,
657745 select : [ "field1" , "field2" ] ,
658- filter : "field1 eq 1"
746+ filter : "field1 eq 1" ,
659747 } ) ;
660748
661749 expect ( object ) . to . deep . equal ( mocks . data . testEntity ) ;
@@ -690,7 +778,7 @@ describe("dynamicsWebApi.callFunction -", () => {
690778 collection : "tests" ,
691779 parameters : { param1 : "value1" , param2 : 2 } ,
692780 select : [ "field1" , "field2" ] ,
693- filter : "field1 eq 1"
781+ filter : "field1 eq 1" ,
694782 } ) ;
695783
696784 expect ( object ) . to . deep . equal ( mocks . data . testEntity ) ;
0 commit comments