29 lines
1.3 KiB
JavaScript
29 lines
1.3 KiB
JavaScript
import { describe, expect, test } from "vitest";
|
|
import { emptyLuckyGiftForm, parseMultiplierList, payloadFromLuckyGiftForm } from "@/features/lucky-gift/configModel.js";
|
|
|
|
describe("lucky gift config payload", () => {
|
|
test("submits both RTP control windows for backend validation", () => {
|
|
const payload = payloadFromLuckyGiftForm(emptyLuckyGiftForm(), null);
|
|
|
|
expect(payload.global_window_draws).toBeGreaterThan(0);
|
|
expect(payload.gift_window_draws).toBeGreaterThan(0);
|
|
expect(payload.pool_id).toBe("default");
|
|
expect(payload.multiplier_ppms).toContain(500_000_000);
|
|
expect(payload.tiers.every((tier) => tier.weight === 0)).toBe(true);
|
|
});
|
|
|
|
test("parses custom multipliers without configured probabilities", () => {
|
|
expect(parseMultiplierList("0, 0.5x, 1, 2")).toEqual([0, 500_000, 1_000_000, 2_000_000]);
|
|
});
|
|
|
|
test("does not add a losing tier when tester only enters positive multipliers", () => {
|
|
const payload = payloadFromLuckyGiftForm(
|
|
{ ...emptyLuckyGiftForm(), multiplierValues: ["1", "2"] },
|
|
null,
|
|
);
|
|
|
|
expect(payload.multiplier_ppms).toEqual([1_000_000, 2_000_000]);
|
|
expect(payload.tiers.some((tier) => tier.multiplier_ppm === 0 || tier.reward_coins === 0)).toBe(false);
|
|
});
|
|
});
|