import { describe, expect, it } from "vitest"; import { compareLunarisVersions, parseLunarisVersionChange, } from "./version"; describe("Lunaris version announcements", () => { it("extracts a version change from a full announcement", () => { expect( parseLunarisVersionChange(`Lunaris has been updated! Version Change: 7.0.53.2 → 7.0.54 Characters Odette`), ).toEqual({ previousVersion: "7.0.53.2", targetVersion: "7.0.54", }); }); it("ignores ordinary and malformed messages", () => { expect(parseLunarisVersionChange("hello")).toBeNull(); expect(parseLunarisVersionChange("Version Change: latest → 7.0.54")).toBeNull(); expect(parseLunarisVersionChange("Version Change: 7.0.53 -> 7.0.54")).toBeNull(); }); it("orders numeric dotted versions with different segment counts", () => { expect(compareLunarisVersions("7.0.54", "7.0.53.2")).toBe(1); expect(compareLunarisVersions("7.0.54", "7.0.54.0")).toBe(0); expect(compareLunarisVersions("7.0.53.2", "7.0.54")).toBe(-1); }); });