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
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();
|
|
});
|
|
});
|