@pagopa/dx-cli
Version:
A CLI useful to manage DX tools.
56 lines (55 loc) • 1.61 kB
JavaScript
import { describe, expect, test } from "vitest";
import getActions from "../actions.js";
export const getPayload = (includeInit = false) => {
const cloudAccount = {
csp: "azure",
defaultLocation: "westeurope",
displayName: "Test-Account",
id: "test-subscription-id",
};
const payload = {
env: {
cloudAccounts: [cloudAccount],
name: "dev",
prefix: "dx",
},
github: {
owner: "pagopa",
repo: "dx",
},
tags: {},
workspace: {
domain: "mytest",
},
};
if (includeInit) {
payload.init = {
cloudAccountsToInitialize: [cloudAccount],
terraformBackend: {
cloudAccount,
},
};
}
return payload;
};
describe("actions", () => {
test.each([
{
payload: getPayload(true),
},
{
payload: getPayload(false),
},
])("correct order of actions", ({ payload }) => {
const actionsOrder = ["getTerraformBackend", "addMany", "addMany"];
if (payload.init) {
actionsOrder.unshift("initCloudAccounts", "provisionTerraformBackend");
actionsOrder.push("addMany", "addMany");
}
const actions = getActions("/templates/path")(payload);
const actionTypes = actions
.filter((action) => typeof action === "object" && Object.hasOwn(action, "type"))
.map((action) => action.type);
expect(actionTypes).toEqual(actionsOrder);
});
});