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.

38 lines
1.1 KiB

import { describe, expect, it } from "vitest";
import {
flockLocatorCount,
flockPageClosedMessage,
isFlockPageAlive,
isFlockPageClosedError,
} from "@/workers/rpa/flock/page-alive";
describe("flock page-alive", () => {
it("识别 Target closed / locator.count 关窗错误", () => {
expect(
isFlockPageClosedError(
new Error("locator.count: Target page, context or browser has been closed"),
),
).toBe(true);
expect(isFlockPageClosedError(new Error("other"))).toBe(false);
});
it("关窗文案可读", () => {
expect(flockPageClosedMessage("填表")).toContain("BROWSER_CLOSED");
expect(flockPageClosedMessage("填表")).toContain("填表");
});
it("isFlockPageAlive null 为 false", () => {
expect(isFlockPageAlive(null)).toBe(false);
});
it("flockLocatorCount 在 page.isClosed 时返回 0", async () => {
const loc = {
page: () => ({ isClosed: () => true }),
count: async () => {
throw new Error("should not call");
},
};
expect(await flockLocatorCount(loc as never)).toBe(0);
});
});