mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-26 16:41:49 +00:00
29 lines
1.3 KiB
TypeScript
29 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { normalizePackageTagInput } from "./package-tag.js";
|
|
|
|
describe("normalizePackageTagInput", () => {
|
|
const packageNames = ["openclaw", "@openclaw/plugin"] as const;
|
|
|
|
it("returns null for blank inputs", () => {
|
|
expect(normalizePackageTagInput(undefined, packageNames)).toBeNull();
|
|
expect(normalizePackageTagInput(" ", packageNames)).toBeNull();
|
|
});
|
|
|
|
it("strips known package-name prefixes before returning the tag", () => {
|
|
expect(normalizePackageTagInput("openclaw@beta", packageNames)).toBe("beta");
|
|
expect(normalizePackageTagInput("@openclaw/plugin@2026.2.24", packageNames)).toBe("2026.2.24");
|
|
expect(normalizePackageTagInput("openclaw@ ", packageNames)).toBeNull();
|
|
});
|
|
|
|
it("treats exact known package names as an empty tag", () => {
|
|
expect(normalizePackageTagInput("openclaw", packageNames)).toBeNull();
|
|
expect(normalizePackageTagInput(" @openclaw/plugin ", packageNames)).toBeNull();
|
|
});
|
|
|
|
it("returns trimmed raw values when no package prefix matches", () => {
|
|
expect(normalizePackageTagInput(" latest ", packageNames)).toBe("latest");
|
|
expect(normalizePackageTagInput("@other/plugin@beta", packageNames)).toBe("@other/plugin@beta");
|
|
expect(normalizePackageTagInput("openclawer@beta", packageNames)).toBe("openclawer@beta");
|
|
});
|
|
});
|