Files
web/apps/scandic-web/services/dataCache/DistributedCache/generateCacheKey/index.test.ts
Joakim Jäderberg a56290edc7 Merged in fix/SW-2401-share-cache-in-prod (pull request #1815)
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
2025-04-17 08:57:21 +00:00

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")
})
})