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.

50 lines
1.4 KiB

import { describe, expect, it } from "vitest";
import {
diffAxelTraces,
normalizeAxelSequence,
type AxelTraceEvent,
} from "../../../scripts/lib/axel-event-tracer";
describe("axel-event-tracer", () => {
it("diff 识别 RPA 缺失 place commit", () => {
const manual: AxelTraceEvent[] = [
{
at: 1,
phase: "manual-pickup",
method: "POST",
url: "https://services.mothership.com/axel/location/search",
status: 200,
kind: "search",
searchPlaceIds: ["ChIJ_manual"],
},
{
at: 2,
phase: "manual-pickup",
method: "GET",
url: "https://services.mothership.com/axel/location/place/ChIJ_manual",
status: 200,
kind: "place",
placeId: "ChIJ_manual",
},
];
const rpa: AxelTraceEvent[] = [
{
at: 1,
phase: "rpa-fillAddress",
method: "POST",
url: "https://services.mothership.com/axel/location/search",
status: 200,
kind: "search",
searchPlaceIds: ["ChIJ_manual"],
},
];
const diff = diffAxelTraces(manual, rpa);
expect(diff.verdict).toBe("RPA_MISSING_PLACE_COMMIT");
expect(diff.manualPlaceCommits).toEqual(["ChIJ_manual"]);
expect(diff.rpaPlaceCommits).toEqual([]);
expect(normalizeAxelSequence(manual).some((l) => l.includes("GET place/ChIJ_manual"))).toBe(
true,
);
});
});