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.

45 lines
1.5 KiB

import { describe, expect, it, vi } from "vitest";
import { assertRpaSelectorsEnv, getSelector } from "@/lib/rpa/selectors";
const REQUIRED = {
RPA_SELECTOR_PICKUP_STREET: "role=textbox",
RPA_SELECTOR_DELIVERY_STREET: "role=textbox",
RPA_SELECTOR_ADDRESS_SUGGESTION: ".pac-item",
RPA_SELECTOR_SUBMIT: "role=button",
RPA_SELECTOR_QUOTE_WIDGET: "#react-quoter-landing-plugin",
} as const;
describe("assertRpaSelectorsEnv", () => {
it("FASTEST 留空时仍可通过启动校验", () => {
vi.stubEnv("RPA_MOCK_MODE", "false");
for (const [key, value] of Object.entries(REQUIRED)) {
vi.stubEnv(key, value);
}
vi.stubEnv("RPA_SELECTOR_FASTEST_OPTION", "");
expect(() => assertRpaSelectorsEnv()).not.toThrow();
vi.unstubAllEnvs();
});
it("env 为空时使用内置双语回退", () => {
vi.stubEnv("RPA_MOCK_MODE", "false");
for (const key of Object.keys(REQUIRED)) {
vi.stubEnv(key, "");
}
vi.stubEnv("RPA_SELECTOR_FASTEST_OPTION", "");
expect(() => assertRpaSelectorsEnv()).not.toThrow();
vi.unstubAllEnvs();
});
it("RPA_SELECTOR_QUOTE_WIDGET 显式空串时 getSelector 走内置回退,禁止空 selector", () => {
vi.stubEnv("RPA_MOCK_MODE", "false");
for (const [key, value] of Object.entries(REQUIRED)) {
vi.stubEnv(key, value);
}
vi.stubEnv("RPA_SELECTOR_QUOTE_WIDGET", "");
expect(getSelector("RPA_SELECTOR_QUOTE_WIDGET")).toBe(
"#react-quoter-landing-plugin",
);
vi.unstubAllEnvs();
});
});