MatchMaster/server/laf-cloud/tests/get-head-info-cat-arr.test.mjs
2026-07-30 12:22:02 +08:00

86 lines
1.8 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
import { registerHooks } from "node:module";
const state = {
user: null,
};
globalThis.__getHeadInfoCloudMock = {
database() {
return {
collection() {
return {
where() {
return {
async getOne() {
return { data: state.user };
},
};
},
};
},
};
},
};
globalThis.__getHeadInfoUtilsMock = {
checkToken(received, expected) {
return received === expected;
},
};
registerHooks({
resolve(specifier, context, nextResolve) {
if (specifier === "@lafjs/cloud") {
return {
url: "data:text/javascript,export default globalThis.__getHeadInfoCloudMock",
shortCircuit: true,
};
}
if (specifier === "@/Utils") {
return {
url: "data:text/javascript,export default globalThis.__getHeadInfoUtilsMock",
shortCircuit: true,
};
}
return nextResolve(specifier, context);
},
});
const { default: getHeadInfo } = await import(
new URL("../functions/getHeadInfo.ts", import.meta.url)
);
test("getHeadInfo returns the user's catArr", async () => {
state.user = {
_id: "u1",
token: "secret",
headArr: [1, 2, 3],
catArr: [1, 2, 3, 4],
film: 20,
};
const result = await getHeadInfo({
body: { uid: "u1", token: "secret" },
});
assert.equal(result.code, 1);
assert.deepEqual(result.data.catArr, [1, 2, 3, 4]);
});
test("getHeadInfo returns default catArr for a legacy user", async () => {
state.user = {
_id: "u1",
token: "secret",
headArr: [1, 2, 3],
film: 20,
};
const result = await getHeadInfo({
body: { uid: "u1", token: "secret" },
});
assert.deepEqual(result.data.catArr, [1, 2, 3]);
});