You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.1 KiB

import { describe, expect, it } from "vitest";
import { RpaError } from "@/modules/rpa/errors";
import {
formatQuoteErrorMessage,
resolveQuoteFailureCode,
resolveQuoteFailureMessage,
} from "@/modules/quote/quote-error-messages";
describe("quote-error-messages", () => {
it("RpaError 保留细分 error_code", () => {
expect(
resolveQuoteFailureCode(
new RpaError("ADDRESS_SUGGESTION_NOT_FOUND", "未找到地址"),
),
).toBe("ADDRESS_SUGGESTION_NOT_FOUND");
});
it("RpaError 使用原始 message 作为用户文案", () => {
const msg = resolveQuoteFailureMessage(
new RpaError("STRUCT_CHANGE", "login 页且无 Mothership 凭据"),
"QUOTE_ENTRY_UNAVAILABLE",
);
expect(msg).toBe("login 页且无 Mothership 凭据");
});
it("formatQuoteErrorMessage 优先 storedMessage", () => {
expect(
formatQuoteErrorMessage("QUOTE_UNAVAILABLE", "自定义原因"),
).toBe("自定义原因");
});
it("formatQuoteErrorMessage 按 code 回退", () => {
expect(formatQuoteErrorMessage("QUOTE_TIMEOUT")).toContain("420 秒");
});
});