@coinbase/cdp-sdk
Version:
SDK for interacting with the Coinbase Developer Platform Wallet API
77 lines (68 loc) • 2.32 kB
text/typescript
/**
* Generated by orval v7.6.0 🍺
* Do not edit manually.
* Coinbase Developer Platform APIs
* The Coinbase Developer Platform APIs - leading the world's transition onchain.
* OpenAPI spec version: 2.0.0
*/
import { faker } from "@faker-js/faker";
import { HttpResponse, delay, http } from "msw";
import type {
RequestEvmFaucet200,
RequestSolanaFaucet200,
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
export const getRequestEvmFaucetResponseMock = (
overrideResponse: Partial<RequestEvmFaucet200> = {},
): RequestEvmFaucet200 => ({ transactionHash: faker.string.alpha(20), ...overrideResponse });
export const getRequestSolanaFaucetResponseMock = (
overrideResponse: Partial<RequestSolanaFaucet200> = {},
): RequestSolanaFaucet200 => ({
transactionSignature: faker.string.alpha(20),
...overrideResponse,
});
export const getRequestEvmFaucetMockHandler = (
overrideResponse?:
| RequestEvmFaucet200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<RequestEvmFaucet200> | RequestEvmFaucet200),
) => {
return http.post("*/v2/evm/faucet", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getRequestEvmFaucetResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getRequestSolanaFaucetMockHandler = (
overrideResponse?:
| RequestSolanaFaucet200
| ((
info: Parameters<Parameters<typeof http.post>[1]>[0],
) => Promise<RequestSolanaFaucet200> | RequestSolanaFaucet200),
) => {
return http.post("*/v2/solana/faucet", async info => {
await delay(0);
return new HttpResponse(
JSON.stringify(
overrideResponse !== undefined
? typeof overrideResponse === "function"
? await overrideResponse(info)
: overrideResponse
: getRequestSolanaFaucetResponseMock(),
),
{ status: 200, headers: { "Content-Type": "application/json" } },
);
});
};
export const getFaucetsMock = () => [
getRequestEvmFaucetMockHandler(),
getRequestSolanaFaucetMockHandler(),
];