fix(browser): accept targetId prefixes
This commit is contained in:
40
src/browser/target-id.test.ts
Normal file
40
src/browser/target-id.test.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import { resolveTargetIdFromTabs } from "./target-id.js";
|
||||
|
||||
describe("browser target id resolution", () => {
|
||||
it("resolves exact ids", () => {
|
||||
const res = resolveTargetIdFromTabs("FULL", [
|
||||
{ targetId: "AAA" },
|
||||
{ targetId: "FULL" },
|
||||
]);
|
||||
expect(res).toEqual({ ok: true, targetId: "FULL" });
|
||||
});
|
||||
|
||||
it("resolves unique prefixes (case-insensitive)", () => {
|
||||
const res = resolveTargetIdFromTabs("57a01309", [
|
||||
{ targetId: "57A01309E14B5DEE0FB41F908515A2FC" },
|
||||
]);
|
||||
expect(res).toEqual({
|
||||
ok: true,
|
||||
targetId: "57A01309E14B5DEE0FB41F908515A2FC",
|
||||
});
|
||||
});
|
||||
|
||||
it("fails on ambiguous prefixes", () => {
|
||||
const res = resolveTargetIdFromTabs("57A0", [
|
||||
{ targetId: "57A01309E14B5DEE0FB41F908515A2FC" },
|
||||
{ targetId: "57A0BEEF000000000000000000000000" },
|
||||
]);
|
||||
expect(res.ok).toBe(false);
|
||||
if (!res.ok) {
|
||||
expect(res.reason).toBe("ambiguous");
|
||||
expect(res.matches?.length).toBe(2);
|
||||
}
|
||||
});
|
||||
|
||||
it("fails when no tab matches", () => {
|
||||
const res = resolveTargetIdFromTabs("NOPE", [{ targetId: "AAA" }]);
|
||||
expect(res).toEqual({ ok: false, reason: "not_found" });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user