Files
web/apps/scandic-web/services/dataCache/DistributedCache/generateCacheKey/getPrefix.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

103 lines
2.2 KiB
TypeScript

import { describe, expect, it, jest } from "@jest/globals"
jest.doMock("@/env/server", () => ({
env: {
NODE_ENV: "test",
},
}))
const { env } = require("@/env/server")
const { getPrefix } = require("./getPrefix")
const mockedEnv = env as { BRANCH: string; GIT_SHA: string }
describe("getPrefix", () => {
const OLD_ENV = process.env
beforeEach(() => {
jest.resetModules()
})
afterEach(() => {
process.env = OLD_ENV
})
it.each([
"prod",
"production",
"release",
"release-v1",
"release-v2",
"release-v2-alpha",
"release-v2.1-alpha",
"release-v2.1.2-alpha",
])(
"should return gitsha for production branches when name is '%s'",
(branchName: string) => {
mockedEnv.BRANCH = branchName
mockedEnv.GIT_SHA = "gitsha"
const result = getPrefix()
expect(result).toBe("gitsha")
}
)
it.each([
"fix/stuff",
"feat/my-feature",
"feature/my-feature",
"releasee",
"release-vA",
"FEAT",
])(
"should return branch name and gitsha for non-production branches when name is '%s'",
(branchName: string) => {
mockedEnv.BRANCH = branchName
mockedEnv.GIT_SHA = "gitsha"
const result = getPrefix()
expect(result).toBe(`${mockedEnv.BRANCH}:${mockedEnv.GIT_SHA}`)
}
)
it("should throw if BRANCH and/or GIT_SHA is not set", () => {
mockedEnv.BRANCH = ""
mockedEnv.GIT_SHA = ""
expect(getPrefix).toThrow(
"Unable to getPrefix, BRANCH and GIT_SHA must be set"
)
mockedEnv.BRANCH = "hasBranch"
mockedEnv.GIT_SHA = ""
expect(getPrefix).toThrow("Unable to getPrefix, GIT_SHA must be set")
mockedEnv.BRANCH = ""
mockedEnv.GIT_SHA = "hasGitSha"
expect(getPrefix).toThrow("Unable to getPrefix, BRANCH must be set")
})
it("should return dev or local user if running locally", () => {
;(process.env.NODE_ENV as any) = "development"
process.env.USER = "test_user"
process.env.USERNAME = "test_username"
mockedEnv.BRANCH = ""
mockedEnv.GIT_SHA = ""
expect(getPrefix()).toBe("test_user")
process.env.USER = ""
expect(getPrefix()).toBe("test_username")
process.env.USERNAME = ""
expect(getPrefix()).toBe("dev")
})
})