import { describe, expect, it, jest } from "@jest/globals" jest.mock("./getPrefix", () => ({ getPrefix: jest.fn(() => "gitsha"), })) // eslint-disable-next-line @typescript-eslint/consistent-type-imports const indexModule: typeof import(".") = require(".") const { generateCacheKey } = indexModule describe("generateCacheKey", () => { const OLD_ENV = process.env beforeEach(() => { jest.resetModules() }) afterEach(() => { process.env = OLD_ENV }) it("generates cachekey with prefix and key using string", () => { expect(generateCacheKey("key1")).toBe("gitsha:key1") }) it("generates cachekey with prefix and key using array", () => { expect(generateCacheKey(["key1"])).toBe("gitsha:key1") }) it("generates cachekey with prefix and keys", () => { const actual = generateCacheKey(["key1", "key2"]) expect(actual).toBe("gitsha:key1_key2") }) it("should throw an error if no keys are provided", () => { expect(() => generateCacheKey([])).toThrow("No keys provided") }) it("should throw an error if only invalid keys are provided", () => { expect(() => generateCacheKey(["", undefined, null] as string[])).toThrow( "No keys provided" ) expect(() => generateCacheKey("")).toThrow("No keys provided") }) })