Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/better-fetch/src/create-fetch/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ export type InferHeaders<H> = H extends StandardSchemaV1
: Record<string, string>;

export type IsFieldOptional<T> = T extends StandardSchemaV1
? undefined extends T
? undefined extends StandardSchemaV1.InferInput<T>
Comment thread
bytaesu marked this conversation as resolved.
? true
: false
: true;
Expand Down
22 changes: 22 additions & 0 deletions packages/better-fetch/src/test/create.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,28 @@ describe("create-fetch-runtime-test", () => {
});
});

it("applies a default query when options are omitted", async () => {
let requestQuery: unknown;
const fetch = createFetch({
baseURL: "https://example.com",
schema: createSchema({
"/movies": {
query: z
.object({ include: z.array(z.string()) })
.default({ include: ["recommendations"] }),
},
}),
customFetchImpl: async () => new Response(),
onRequest(context) {
requestQuery = context.query;
},
});

await fetch("/movies");

expect(requestQuery).toEqual({ include: ["recommendations"] });
});

it("should validate response and return data if validation passes", async () => {
const res = await $fetch("/echo", {
output: z.object({
Expand Down