Fetch.functions.makeMockLayer
fx-fetch / Fetch / makeMockLayer
Function: makeMockLayer()
Section titled “Function: makeMockLayer()”makeMockLayer(
mockFn):Layer<Fetch,never,never>
Defined in: packages/fx-fetch/src/Fetch/makeMockLayer.ts:55
Creates a mock Fetch layer for testing purposes.
The mock function can return either a plain Response or an Effect<Response, E>
for simulating both successful responses and error scenarios.
Parameters
Section titled “Parameters”mockFn
Section titled “mockFn”MockFn
Returns
Section titled “Returns”Layer<Fetch, never, never>
Examples
Section titled “Examples”import { Effect } from 'effect';import { Fetch, Request, Response } from 'fx-fetch';
// Mock returning a simple Responseconst mockLayer = Fetch.makeMockLayer(() => Response.unsafeMake({ status: 200, ok: true, body: 'Hello' }));
Effect.gen(function* () { const request = Request.unsafeMake({ url: 'https://example.com' }); const response = yield* Fetch.fetch(request);}).pipe( Effect.provide(mockLayer), // ◀︎── Provide mock layer Effect.runPromise);import { Effect } from 'effect';import { Fetch, Request, Response, Url } from 'fx-fetch';
// Mock using the request to return different responsesconst mockLayer = Fetch.makeMockLayer((request) => { if (Url.format(request.url).includes('/users')) { return Response.unsafeMake({ status: 200, ok: true, body: JSON.stringify([{ id: 1 }]) }); }
return Response.unsafeMake({ status: 404, ok: false });});1.2.0