UNPKG

@catladder/pipeline

Version:

Panter workflow for cloud CI/CD and DevOps

105 lines (100 loc) 3.01 kB
import { getAllEnvsByTrigger } from ".."; import type { DeployConfigKubernetesCluster } from "../.."; import type { Config } from "../../types"; describe("getAllEnvsByTrigger", () => { const cluster: DeployConfigKubernetesCluster = { type: "gcloud", name: "mega-cluster", projectId: "super-google-project", region: "ch-blabla", }; const SIMPLE_CONFIG: Config = { appName: "my-app", customerName: "pan", components: { app1: { dir: "dir1", build: { type: "node", }, deploy: { type: "kubernetes", cluster }, }, app2: { dir: "dir2", build: { type: "node", }, deploy: { type: "kubernetes", cluster }, env: { dev2: { type: "dev", }, review2: { type: "review", }, stage2: { type: "stage", }, prod2: { type: "prod", }, }, }, app3: { dir: "dir2", build: { type: "node", }, deploy: { type: "kubernetes", cluster }, env: { dev: false, review: false, stage: false, prod: false, }, }, }, }; describe("mainBranch", () => { it("always includes dev if not disabled", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app1", "mainBranch"); expect(envs).toEqual(["dev"]); }); it("returns additional dev environments", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app2", "mainBranch"); expect(envs).toEqual(["dev", "dev2"]); }); it("does not include disabled envs", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app3", "mainBranch"); expect(envs).toEqual([]); }); }); describe("mr", () => { it("always includes review if not disabled", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app1", "mr"); expect(envs).toEqual(["review"]); }); it("returns additional dev environments", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app2", "mr"); expect(envs).toEqual(["review", "review2"]); }); it("does not include disabled envs", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app3", "mr"); expect(envs).toEqual([]); }); }); describe("taggedRelease", () => { it("always includes review if not disabled", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app1", "taggedRelease"); expect(envs).toEqual(["stage", "prod"]); }); it("returns additional dev environments", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app2", "taggedRelease"); expect(envs).toEqual(["stage", "prod", "stage2", "prod2"]); }); it("does not include disabled envs", () => { const envs = getAllEnvsByTrigger(SIMPLE_CONFIG, "app3", "taggedRelease"); expect(envs).toEqual([]); }); }); });