48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import { afterEach, expect, test, vi } from "vitest";
|
|
import { setAccessToken, setSelectedAppCode } from "@/shared/api/request";
|
|
import {
|
|
deletePointWithdrawalCoinSeller,
|
|
listPointWithdrawalCoinSellers,
|
|
upsertPointWithdrawalCoinSeller,
|
|
} from "./pointWithdrawalApi";
|
|
|
|
afterEach(() => {
|
|
setAccessToken("");
|
|
setSelectedAppCode("lalu");
|
|
vi.unstubAllGlobals();
|
|
});
|
|
|
|
test("point withdrawal whitelist APIs use selected app scope and server-owned ratio payload", async () => {
|
|
setSelectedAppCode("fami");
|
|
vi.stubGlobal(
|
|
"fetch",
|
|
vi.fn(async () => new Response(JSON.stringify({ code: 0, data: { items: [] } }))),
|
|
);
|
|
|
|
await listPointWithdrawalCoinSellers();
|
|
await upsertPointWithdrawalCoinSeller({
|
|
sellerUserId: 90001,
|
|
sortOrder: 1,
|
|
pointAmount: 100000,
|
|
sellerCoinAmount: 92000,
|
|
serviceCountryCodes: ["SA"],
|
|
status: "active",
|
|
});
|
|
await deletePointWithdrawalCoinSeller("90001");
|
|
|
|
const [listUrl, listInit] = vi.mocked(fetch).mock.calls[0];
|
|
const [putUrl, putInit] = vi.mocked(fetch).mock.calls[1];
|
|
const [deleteUrl, deleteInit] = vi.mocked(fetch).mock.calls[2];
|
|
expect(String(listUrl)).toContain("/api/v1/admin/point-withdrawal/coin-sellers");
|
|
expect(listInit?.headers).toMatchObject({ "X-App-Code": "fami" });
|
|
expect(String(putUrl)).toContain("/api/v1/admin/point-withdrawal/coin-sellers");
|
|
expect(putInit?.method).toBe("PUT");
|
|
expect(JSON.parse(String(putInit?.body))).toMatchObject({
|
|
pointAmount: 100000,
|
|
sellerCoinAmount: 92000,
|
|
serviceCountryCodes: ["SA"],
|
|
});
|
|
expect(String(deleteUrl)).toContain("/api/v1/admin/point-withdrawal/coin-sellers/90001");
|
|
expect(deleteInit?.method).toBe("DELETE");
|
|
});
|