UNPKG

@follow-app/client-sdk

Version:

TypeScript client SDK for Follow RSS Server API

59 lines (47 loc) 1.59 kB
import { beforeEach, describe, expect, it, vi } from "vitest" import type { HttpClient } from "../../client/base" import { createAPIProxy } from "../../client/proxy" import { subscriptionsModule } from "." describe("subscriptions.parseOpml raw body handling", () => { let mockClient: HttpClient beforeEach(() => { mockClient = { request: vi.fn().mockResolvedValue({ code: 0, data: { ok: true } }), } as any }) it("passes ArrayBuffer body through unchanged (requestType=arrayBuffer)", async () => { const api = createAPIProxy<typeof subscriptionsModule.api>( mockClient, subscriptionsModule, ) const encoder = new TextEncoder() const { buffer } = encoder.encode("<opml></opml>") await api.parseOpml(buffer) expect(mockClient.request).toHaveBeenCalledWith( "/subscriptions/parse-opml", expect.objectContaining({ method: "POST", requestType: "arrayBuffer", body: buffer, }), ) }) it("passes FormData body through unchanged for import (requestType=formData)", async () => { const api = createAPIProxy<typeof subscriptionsModule.api>( mockClient, subscriptionsModule, ) const form = new FormData() form.append("file", new Blob(["opml content"]), "subs.opml") form.append("items", JSON.stringify([])) await api.import(form) expect(mockClient.request).toHaveBeenCalledWith( "/subscriptions/import", expect.objectContaining({ method: "POST", requestType: "formData", body: form, }), ) }) })