hyapp-admin-platform/src/shared/hooks/usePaginatedQuery.test.js
2026-06-11 01:01:53 +08:00

49 lines
1.5 KiB
JavaScript

import { expect, test } from "vitest";
import { mergePaginatedItems } from "./usePaginatedQuery.js";
test("mergePaginatedItems keeps ledger rows with the same user but different entry ids", () => {
const merged = mergePaginatedItems(
[
{ entryId: 1, userId: "1001", amount: 100 },
{ entryId: 2, userId: "1001", amount: 50 },
],
[
{ entryId: 3, userId: "1001", amount: 20 },
{ entryId: 4, userId: "1002", amount: 10 },
],
);
expect(merged.map((item) => item.entryId)).toEqual([1, 2, 3, 4]);
});
test("mergePaginatedItems still removes duplicated rows by record id", () => {
const merged = mergePaginatedItems(
[{ entryId: 1, userId: "1001", amount: 100 }],
[{ entryId: 1, userId: "1001", amount: 100 }],
);
expect(merged).toHaveLength(1);
expect(merged[0].entryId).toBe(1);
});
test("mergePaginatedItems can still merge entity lists by user id", () => {
const merged = mergePaginatedItems(
[{ userId: "1001", username: "A" }],
[
{ userId: "1001", username: "A" },
{ userId: "1002", username: "B" },
],
);
expect(merged.map((item) => item.userId)).toEqual(["1001", "1002"]);
});
test("mergePaginatedItems keeps recharge products by product id", () => {
const merged = mergePaginatedItems(
[{ productId: 1, productName: "普通用户档位" }],
[{ productId: 2, productName: "币商档位" }],
);
expect(merged.map((item) => item.productId)).toEqual([1, 2]);
});