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
103 lines
2.2 KiB
TypeScript
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")
|
|
})
|
|
})
|