Skip to content

Commit d37e011

Browse files
committed
Fix Request parameter being ignored by client methods
1 parent 61c176c commit d37e011

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

packages/openapi-fetch/src/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export default function createClient(clientOptions) {
109109

110110
let id;
111111
let options;
112-
let request = new CustomRequest(
112+
let request = new Request(
113113
createFinalURL(schemaPath, { baseUrl: finalBaseUrl, params, querySerializer }),
114114
requestInit,
115115
);

packages/openapi-fetch/test/common/create-client.test.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)