import { describe, expect, it } from "vitest"; import { isPl24GroupNode, isPl24LeafNode } from "./pl24-tree"; // Canlı P5 yanıtlarından (2026-09-16 keşfi, plv2-artefakt/) alınan gerçek // wid + path çiftleri. Bu dosya "0 parça" sınıfı hatanın regresyon kilidi. describe("isPl24LeafNode — canlı P5 şekilleri", () => { it("VW (p5vwag): maingroups/subgroups grup, bom/vin yaprak", () => { expect( isPl24GroupNode({ linkWid: "mainGroupsTable", linkPath: "/p5vwag/extern/groups/vin_maingroups?vin=X", }), ).toBe(true); expect( isPl24GroupNode({ linkWid: "subGroupsIllusTable", linkPath: "/p5vwag/extern/groups/vin_subgroups_illus?maingroup=4", }), ).toBe(true); expect( isPl24LeafNode({ linkWid: "bomlist", linkPath: "/p5vwag/extern/bom/vin?illustration=407-000", }), ).toBe(true); }); it("PSA (p5psa): scope + mainGroups + illusTable grup, bomDetails yaprak", () => { expect( isPl24GroupNode({ linkWid: "scopeTable", linkPath: "/p5psa/extern/group/vin/scope?modelCode=1PD2", }), ).toBe(true); expect( isPl24GroupNode({ linkWid: "mainGroupTable", linkPath: "/p5psa/extern/group/vin/mainGroups?scope=_FCT0001", }), ).toBe(true); // Eski `includes("group")` kuralının kaçırdığı seviye — sessiz boş panelin kaynağı. expect( isPl24GroupNode({ linkWid: "illusTable", linkPath: "/p5psa/extern/group/vin/illus?mainGroup=_FCT0001_FCT0512", }), ).toBe(true); // camelCase bomDetails — eski `includes("/bomdetails")` kaçırıyordu. expect( isPl24LeafNode({ linkWid: "bomlist", linkPath: "/p5psa/extern/details/vin/bomDetails?illustration=D2F001A48A", }), ).toBe(true); }); it("Volvo (p5volvo): illustrationsTable grup, bom yaprak", () => { expect( isPl24GroupNode({ linkWid: "illustrationsTable", linkPath: "/p5volvo/extern/groups/vin/illustration?group=0b00c8af80205942", }), ).toBe(true); expect(isPl24LeafNode({ linkWid: "bomlist", linkPath: "/p5volvo/extern/bom/vin?..." })).toBe( true, ); expect( isPl24LeafNode({ linkWid: "partinfo", linkPath: "/p5volvo/extern/partinfo/vin?partno=36050493", }), ).toBe(true); }); it("Subaru (p5subaru): subgroups/illustrations grup, bom/vin?figNum yaprak", () => { expect( isPl24GroupNode({ linkWid: "illustrationsTable", linkPath: "/p5subaru/extern/groups/vin/illustrations?subGroup=001", }), ).toBe(true); expect( isPl24LeafNode({ linkWid: "bomlist", linkPath: "/p5subaru/extern/bom/vin?figNum=01" }), ).toBe(true); }); it("wid yoksa yol kalıbına düşer (eski DB satırları)", () => { expect(isPl24LeafNode({ linkPath: "/p5vwag/extern/bom/vin?illustration=1" })).toBe(true); expect( isPl24LeafNode({ linkPath: "/psa/peugeot_parts/vin-image-board.action?illCode=1" }), ).toBe(true); expect( isPl24GroupNode({ linkPath: "/psa/peugeot_parts/json-vin-main-groups.action?scope=_FCT0001", }), ).toBe(true); }); it("hasSubgroups=true yol tahminini ezer", () => { expect(isPl24LeafNode({ linkPath: "/p5x/extern/unknown", hasSubgroups: true })).toBe(false); }); it("servicepart öğe listesi yapraktır", () => { expect( isPl24LeafNode({ linkWid: "servicePartsItemsTable", linkPath: "/p5vwag/extern/servicepart/vin_items?x=1", }), ).toBe(true); }); });