UNPKG

@alexasomba/paystack-browser

Version:

A browser-compatible Paystack SDK - Complete, Type-safe, and Fetch-ready with full OpenAPI coverage.

51 lines (38 loc) 1.6 kB
--- name: paystack-browser-transport-testing description: Use when testing or customizing Paystack Browser SDK transport behavior with custom fetch, baseUrl, public-key auth, browser mocks, timeouts, or retries. license: MIT compatibility: "Modern browsers and bundlers; package tooling/SSR builds require Node.js >=22.0.0; ESM package; public-key frontend runtime only." --- # Paystack Browser Transport and Testing The browser SDK accepts a custom `fetch`, `baseUrl`, headers, timeout, retry, and idempotency options. It rejects keys that look like Paystack secret keys. ## Custom fetch Use `fetch` injection for browser tests, request tracing, or controlled mock responses. ```ts const paystack = createPaystack({ apiKey: "pk_test_123", fetch: async () => Response.json({ status: true, message: "OK", data: { reference: "ref_123" }, }), }); ``` ## Browser test setup - Provide `fetch`, `Headers`, `Request`, and `Response` globals if your test runner does not. - Use public keys in tests; secret-looking keys should throw during client creation. - Mock Paystack envelopes, not only raw data payloads. ## Local base URL Use `baseUrl` only for local mocks, a controlled proxy, or integration tests. ```ts const paystack = createPaystack({ apiKey: "pk_test_123", baseUrl: "http://127.0.0.1:8787", }); ``` ## Best practices - Keep tests honest about browser safety: privileged flows belong on a backend. - Assert that secret keys are rejected. - Avoid putting sensitive headers in frontend test fixtures. - Use low retry counts or fake timers for retry tests.