@@ -57,6 +57,47 @@ describe("createClient options", () => {
5757 expect ( actualURL . href ) . toBe ( "https://api.foo.bar/v2/resources" ) ;
5858 } ) ;
5959
60+ test ( "Request option is used" , async ( ) => {
61+ let customRequestCalled = false ;
62+
63+ const createCustomRequest = ( ) => {
64+ return class extends Request {
65+ constructor ( input : URL | RequestInfo , init ?: RequestInit ) {
66+ super ( input , init ) ;
67+ customRequestCalled = true ;
68+ }
69+ } ;
70+ } ;
71+
72+ const client = createObservedClient < paths > (
73+ { baseUrl : "https://api.foo.bar/v2" , Request : createCustomRequest ( ) } ,
74+ async ( ) => Response . json ( [ ] ) ,
75+ ) ;
76+
77+ await client . GET ( "/resources" ) ;
78+
79+ expect ( customRequestCalled ) . toBe ( true ) ;
80+ } ) ;
81+
82+ test ( "Request option is also used when fetching " , async ( ) => {
83+ let customRequestCalled = false ;
84+
85+ const createCustomRequest = ( ) => {
86+ return class extends Request {
87+ constructor ( input : URL | RequestInfo , init ?: RequestInit ) {
88+ super ( input , init ) ;
89+ customRequestCalled = true ;
90+ }
91+ } ;
92+ } ;
93+
94+ const client = createObservedClient < paths > ( { baseUrl : "https://api.foo.bar/v2" } , async ( ) => Response . json ( [ ] ) ) ;
95+
96+ await client . GET ( "/resources" , { Request : createCustomRequest ( ) } ) ;
97+
98+ expect ( customRequestCalled ) . toBe ( true ) ;
99+ } ) ;
100+
60101 describe ( "content-type" , ( ) => {
61102 const BODY_ACCEPTING_METHODS = [ [ "PUT" ] , [ "POST" ] , [ "DELETE" ] , [ "OPTIONS" ] , [ "PATCH" ] ] as const ;
62103 const ALL_METHODS = [ ...BODY_ACCEPTING_METHODS , [ "GET" ] , [ "HEAD" ] ] as const ;
0 commit comments