@@ -57,6 +57,47 @@ describe("createClient options", () => {
57
57
expect ( actualURL . href ) . toBe ( "https://api.foo.bar/v2/resources" ) ;
58
58
} ) ;
59
59
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
+
60
101
describe ( "content-type" , ( ) => {
61
102
const BODY_ACCEPTING_METHODS = [ [ "PUT" ] , [ "POST" ] , [ "DELETE" ] , [ "OPTIONS" ] , [ "PATCH" ] ] as const ;
62
103
const ALL_METHODS = [ ...BODY_ACCEPTING_METHODS , [ "GET" ] , [ "HEAD" ] ] as const ;
0 commit comments