import { expectType } from "tsd"; import * as firefish from "../src"; describe("API", () => { test("success", async () => { const cli = new firefish.api.APIClient({ origin: "https://firefish.test", credential: "TOKEN", }); const res = await cli.request("meta", { detail: true }); expectType(res); }); test("conditional respose type (meta)", async () => { const cli = new firefish.api.APIClient({ origin: "https://firefish.test", credential: "TOKEN", }); const res = await cli.request("meta", { detail: true }); expectType(res); const res2 = await cli.request("meta", { detail: false }); expectType(res2); const res3 = await cli.request("meta", {}); expectType(res3); const res4 = await cli.request("meta", { detail: true as boolean }); expectType< | firefish.entities.LiteInstanceMetadata | firefish.entities.DetailedInstanceMetadata >(res4); }); test("conditional respose type (users/show)", async () => { const cli = new firefish.api.APIClient({ origin: "https://firefish.test", credential: "TOKEN", }); const res = await cli.request("users/show", { userId: "xxxxxxxx" }); expectType(res); const res2 = await cli.request("users/show", { userIds: ["xxxxxxxx"] }); expectType(res2); }); });