58 lines
2.5 KiB
TypeScript
58 lines
2.5 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
buildOacCaseCookie,
|
|
OAC_CASE_COOKIE,
|
|
parseOacCase,
|
|
} from "@/utils/user";
|
|
|
|
/** ตัวอย่าง cookie จริงจากระบบ e-Court (เก็บใน test เพื่อล็อก format ของจริง) */
|
|
const REAL_OAC_CASE =
|
|
"u_userid=235821&u_userlogin=tu_2&u_courtid=4&u_password=&u_AdminStatus=&u_perCardNo=5000000000006&u_perCardNoEncript=1800650010005002003&u_userType=4&u_CidAuthen=NNNENNNNNNNNNNNNNNNN&u_hSecId=NNNNNNNNNNNNNNNNNNNN&u_username=&u_courtName=&u_AuditID=1995227&u_PsGroupNum=1&u_PsGroup=11&u_PsGroupName=";
|
|
|
|
describe("parseOacCase", () => {
|
|
it("cookie e-Court จริง → identity จาก u_userid/u_userlogin", () => {
|
|
expect(parseOacCase(REAL_OAC_CASE)).toEqual({
|
|
userId: "235821",
|
|
userName: "tu_2",
|
|
});
|
|
});
|
|
|
|
it("ค่าจาก buildOacCaseCookie อ่านกลับได้ (round-trip ค่า mock login จริง user1)", () => {
|
|
expect(parseOacCase(buildOacCaseCookie("user1", "user1"))).toEqual({
|
|
userId: "user1",
|
|
userName: "user1",
|
|
});
|
|
});
|
|
|
|
it("ค่าเสีย/ว่าง/ขาด field → null (ถือว่ายังไม่เข้าสู่ระบบ)", () => {
|
|
expect(parseOacCase(null)).toBeNull();
|
|
expect(parseOacCase(undefined)).toBeNull();
|
|
expect(parseOacCase("")).toBeNull();
|
|
expect(parseOacCase("garbage")).toBeNull();
|
|
expect(parseOacCase("u_userlogin=user_x")).toBeNull(); // ขาด u_userid
|
|
expect(parseOacCase("u_userid=123&u_userlogin=")).toBeNull(); // u_userlogin ว่าง
|
|
});
|
|
|
|
it("ค่ารอบด้วย space ถูก trim", () => {
|
|
expect(parseOacCase("u_userid= 123 &u_userlogin= tu_2 ")).toEqual({
|
|
userId: "123",
|
|
userName: "tu_2",
|
|
});
|
|
});
|
|
|
|
it("ชื่อ cookie ตรงกับระบบ e-Court", () => {
|
|
expect(OAC_CASE_COOKIE).toBe("oacCase");
|
|
});
|
|
});
|
|
|
|
describe("buildOacCaseCookie", () => {
|
|
it("แทนเฉพาะ u_userid/u_userlogin — ฟิลด์อื่นคงค่าตัวอย่างจริงครบทุก field", () => {
|
|
const fields = Object.fromEntries(new URLSearchParams(buildOacCaseCookie("xxxxxx", "user_x")));
|
|
expect(fields["u_userid"]).toBe("xxxxxx");
|
|
expect(fields["u_userlogin"]).toBe("user_x");
|
|
expect(fields["u_courtid"]).toBe("4");
|
|
expect(fields["u_perCardNo"]).toBe("5000000000006");
|
|
expect(fields["u_AuditID"]).toBe("1995227");
|
|
expect(Object.keys(fields)).toHaveLength(16);
|
|
});
|
|
});
|