yoomoney-sdk
Version:
⭐ Typed YooMoney Wallet SDK for NodeJS. Supported API's: Auth, Wallet & Notifications
61 lines (48 loc) • 1.75 kB
text/typescript
import { API, YMApiError } from "../api";
import { config } from "dotenv";
import type { Operation } from "../api.types";
import { test, describe, expect } from "vitest";
config();
describe(API.name, () => {
describe("Default API", () => {
const instance = new API(process.env.YOOMONEY_TOKEN || "");
test("Instance", () => {
expect(instance.agent).toBeUndefined();
expect(instance.token).toBe(process.env.YOOMONEY_TOKEN);
expect(instance.endpoint).toBe("https://yoomoney.ru/api");
});
test("Account info", async () => {
const data = await instance.accountInfo();
expect(data).toMatchObject({
account: process.env.YOOMONEY_WALLET,
currency: "643",
account_type: "personal",
identified: true,
account_status: "identified"
});
});
test("Operation History & Details", async () => {
const data = await instance.operationHistory();
const operation = data.operations[0] as Operation;
expect(typeof operation.amount).toBe("number");
expect(typeof operation.title).toBe("string");
expect(typeof operation.operation_id).toBe("string");
const details = await instance.operationDetails({
operation_id: operation.operation_id as string
});
expect(details).toMatchObject(operation);
try {
await instance.operationDetails({
operation_id: "0"
});
expect(false).toBeTruthy();
} catch (error: any) {
expect(error).toBeInstanceOf(YMApiError);
expect(error.message).toBe(
"API returned error code: illegal_param_operation_id"
);
expect(error.code).toBe("illegal_param_operation_id");
}
});
});
});