Fix/SW-2401 share cache in prod * fix: reuse cache between prod and pre-prod * tests: add tests for generating cachePrefix * tests: remove unnecessary reset of process.env * tests: add tests for generateCacheKey * fix: make sure that we don't get invalid cacheKeys * fix: make sure that we don't get invalid cacheKeys Approved-by: Linus Flood
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
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")
|
|
})
|
|
})
|