import { describe, expect, it } from "vitest";
import {
buildRunnerRegistrationTokenName,
createRunnerRegistrationSecret,
getRunnerRegistrationTokenTtlDays,
isRunnerRegistrationTokenName,
} from "@/lib/runner-registration-token";
describe("runner registration tokens", () => {
it("builds and recognizes registration token names", () => {
const tokenName = buildRunnerRegistrationTokenName("token-123");
expect(tokenName).toBe("ACTIONS_RUNNER_TOKEN:token-123");
expect(isRunnerRegistrationTokenName(tokenName)).toBe(true);
expect(isRunnerRegistrationTokenName("ACTIONS_RUNNER_TOKEN")).toBe(true);
expect(isRunnerRegistrationTokenName("OTHER_TOKEN")).toBe(false);
});
it("generates reasonably strong secrets", () => {
const secret = createRunnerRegistrationSecret();
expect(secret.length).toBeGreaterThanOrEqual(48);
});
it("uses positive TTL defaults", () => {
delete process.env.RUNNER_REGISTRATION_TOKEN_TTL_DAYS;
expect(getRunnerRegistrationTokenTtlDays()).toBeGreaterThan(0);
});
});