import { describe, expect, it } from "vitest"; import { LOCAL_DEVELOPMENT_RELEASE, resolveSentryRelease } from "./sentry-release"; describe("resolveSentryRelease", () => { it("maps the exact commit to the frontend release", () => { const sha = "ABCDEF0123456789ABCDEF0123456789ABCDEF01"; expect(resolveSentryRelease(sha, true)).toEqual({ commitSha: sha.toLowerCase(), release: `shoc-frontend@${sha.toLowerCase()}`, }); }); it("fails CI when the commit identity is missing or malformed", () => { expect(() => resolveSentryRelease(undefined, true)).toThrow(/40-character commit SHA/); expect(() => resolveSentryRelease("not-a-sha", true)).toThrow(/40-character commit SHA/); }); it("labels non-CI builds without a commit as local development", () => { expect(resolveSentryRelease(undefined, false)).toEqual({ commitSha: LOCAL_DEVELOPMENT_RELEASE, release: LOCAL_DEVELOPMENT_RELEASE, }); }); });