yoomoney-sdk
Version:
⭐ Typed YooMoney Wallet SDK for NodeJS. Supported API's: Auth, Wallet & Notifications
107 lines (96 loc) • 3.13 kB
text/typescript
import { test, describe } from "vitest";
import { PaymentFormBuilder, PaymentType } from "../payment-form-builder";
import { testHtml } from "./html";
describe(PaymentFormBuilder.name, () => {
test("Base", () => {
const builder = new PaymentFormBuilder({
paymentType: PaymentType.FromCard,
sum: 10.055_666,
receiver: "",
quickPayForm: "small",
targets: "aboba"
});
testHtml(builder.buildHtml(), {
"quickpay-form": "small",
paymentType: "AC",
receiver: "",
sum: "10.055666",
targets: "aboba",
"need-address": false,
"need-email": false,
"need-fio": false,
"need-phone": false,
"short-dest": undefined,
comment: undefined,
formcomment: undefined,
label: undefined,
successURL: undefined
});
});
test("Setters", () => {
const builder = new PaymentFormBuilder();
testHtml(builder.setAmount("1.056606").buildHtml(), { sum: "1.06" });
testHtml(builder.setAmount(10.056).buildHtml(), { sum: "10.06" });
{
testHtml(builder.buildHtml(), { "need-address": false });
testHtml(builder.requireAddress().buildHtml(), { "need-address": true });
testHtml(builder.requireAddress(true).buildHtml(), {
"need-address": true
});
testHtml(builder.requireAddress(false).buildHtml(), {
"need-address": false
});
}
{
testHtml(builder.buildHtml(), { "need-email": false });
testHtml(builder.requireEmail().buildHtml(), { "need-email": true });
testHtml(builder.requireEmail(true).buildHtml(), {
"need-email": true
});
testHtml(builder.requireEmail(false).buildHtml(), {
"need-email": false
});
}
{
testHtml(builder.buildHtml(), { "need-fio": false });
testHtml(builder.requireFio().buildHtml(), { "need-fio": true });
testHtml(builder.requireFio(true).buildHtml(), {
"need-fio": true
});
testHtml(builder.requireFio(false).buildHtml(), {
"need-fio": false
});
}
{
testHtml(builder.buildHtml(), { "need-phone": false });
testHtml(builder.requirePhone().buildHtml(), { "need-phone": true });
testHtml(builder.requirePhone(true).buildHtml(), {
"need-phone": true
});
testHtml(builder.requirePhone(false).buildHtml(), {
"need-phone": false
});
}
{
testHtml(builder.buildHtml(), { receiver: "" });
testHtml(builder.setReceiver(4_100_117_723_869_225).buildHtml(), {
receiver: "4100117723869225"
});
testHtml(builder.setReceiver("4100117723869225").buildHtml(), {
receiver: "4100117723869225"
});
}
{
testHtml(builder.buildHtml(), { successURL: undefined });
testHtml(builder.setSuccessURL("https://example.com/success").buildHtml(), {
successURL: "https://example.com/success"
});
testHtml(
builder.setSuccessURL(new URL("https://example.com/success")).buildHtml(),
{
successURL: "https://example.com/success"
}
);
}
});
});