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.
56 lines
2.0 KiB
56 lines
2.0 KiB
import { describe, expect, it } from "vitest";
|
|
import {
|
|
PLACE_DIAG_COLLECT_SNAPSHOT,
|
|
PLACE_DIAG_SET_MARK,
|
|
P0_PLACE_DIAG_INIT,
|
|
P2_FETCH_HIJACK_INIT,
|
|
} from "@/workers/rpa/fix-place/place-diagnostic-init";
|
|
import { interpretPlaceDiagnostic } from "@/workers/rpa/fix-place/place-diagnostic-probe";
|
|
|
|
describe("place-diagnostic-init", () => {
|
|
it("P0/P2 脚本为纯字符串", () => {
|
|
for (const script of [
|
|
P0_PLACE_DIAG_INIT,
|
|
P2_FETCH_HIJACK_INIT,
|
|
PLACE_DIAG_SET_MARK,
|
|
PLACE_DIAG_COLLECT_SNAPSHOT,
|
|
]) {
|
|
expect(typeof script).toBe("string");
|
|
expect(script).not.toMatch(/__name|__assign/);
|
|
}
|
|
expect(P0_PLACE_DIAG_INIT).toContain("maps.event.addListener");
|
|
expect(P0_PLACE_DIAG_INIT).toContain("fingerprintHandler");
|
|
expect(P2_FETCH_HIJACK_INIT).toContain("axel/location/place");
|
|
});
|
|
});
|
|
|
|
describe("interpretPlaceDiagnostic", () => {
|
|
it("无监听器时提示 input gm 定位", () => {
|
|
const lines = interpretPlaceDiagnostic(
|
|
{
|
|
ok: true,
|
|
topology: { instanceCount: 0, instances: [], inputProbes: [], monkeyPatchInstances: 0, capturedHandlers: 0 },
|
|
listeners: { total: 0, anyHasFetch: false, anyHasAxelPlace: false, rows: [] },
|
|
handlerEvents: [],
|
|
fetchLog: [],
|
|
},
|
|
"test",
|
|
);
|
|
expect(lines.some((l) => l.includes("无任何 place_changed 监听器"))).toBe(true);
|
|
});
|
|
|
|
it("有 handler 无 fetch 时提示 P2", () => {
|
|
const lines = interpretPlaceDiagnostic(
|
|
{
|
|
ok: true,
|
|
topology: { instanceCount: 1, instances: [], inputProbes: [], monkeyPatchInstances: 1, capturedHandlers: 1 },
|
|
listeners: { total: 1, anyHasFetch: false, anyHasAxelPlace: false, rows: [] },
|
|
handlerEvents: [{ type: "place_changed_handler", instanceId: "ac-1", getPlaceBefore: { place_id: "ChIJ_test", hasGeometry: true } }],
|
|
fetchLog: [],
|
|
},
|
|
"test",
|
|
);
|
|
expect(lines.some((l) => l.includes("P2 无 place fetch"))).toBe(true);
|
|
});
|
|
});
|