diff --git a/src/actions/createEnvironment.ts b/src/actions/createEnvironment.ts index 0ab6e303..08038432 100644 --- a/src/actions/createEnvironment.ts +++ b/src/actions/createEnvironment.ts @@ -15,6 +15,7 @@ export interface CreateEnvironmentParameters extends CommonActionParameters { templates: HostParameterEntry; domainName: HostParameterEntry; teamId: HostParameterEntry; + securityGroupId: HostParameterEntry; } export interface EnvironmentResult { @@ -41,6 +42,7 @@ export async function createEnvironment(parameters: CreateEnvironmentParameters, validator.pushInput(pacArgs, "--language", parameters.language, normalizeLanguage); validator.pushInput(pacArgs, "--domain", parameters.domainName); validator.pushInput(pacArgs, "--team-id", parameters.teamId); + validator.pushInput(pacArgs, "--security-group-id", parameters.securityGroupId); validator.pushCommon(pacArgs, parameters); logger.log("Calling pac cli inputs: " + pacArgs.join(" ")); diff --git a/test/actions/createEnvironment.test.ts b/test/actions/createEnvironment.test.ts index 0310f60d..8a44e51a 100644 --- a/test/actions/createEnvironment.test.ts +++ b/test/actions/createEnvironment.test.ts @@ -36,6 +36,7 @@ describe("action: createEnvironment", () => { region: { name: 'LocationName', required: true }, templates: { name: 'AppsTemplate', required: false }, teamId: { name: 'TeamId', required: false }, + securityGroupId: { name: 'SecurityGroupId', required: false }, logToConsole: false }; }); @@ -87,7 +88,7 @@ describe("action: createEnvironment", () => { "--templates", host.templates, "--region", remappedRegionUS, "--currency", host.currency, "--language", host.language, "--domain", host.domainName); }); - it("with required params, calls pac to create teams environemnt", async () => { + it("with required params, calls pac to create teams environment", async () => { createEnvironmentParameters.teamId = { name: 'TeamId', required: true }; await runActionWithMocks(createEnvironmentParameters); @@ -108,4 +109,14 @@ describe("action: createEnvironment", () => { "--region", 'Australia', "--currency", host.currency, "--language", host.language, "--domain", host.domainName, "--team-id", host.teamId); }); + + it("with required params, calls pac to create environment with security group", async () => { + createEnvironmentParameters.securityGroupId = { name: 'SecurityGroupId', required: true }; + + await runActionWithMocks(createEnvironmentParameters); + + pacStub.should.have.been.calledOnceWith("admin", "create", "--name", host.environmentName, "--type", host.environmentType, + "--region", host.region, "--currency", host.currency, "--language", host.language, "--domain", host.domainName, + "--security-group-id", host.securityGroupId); + }); }); diff --git a/test/actions/mock/mockHost.ts b/test/actions/mock/mockHost.ts index 2e0db9b4..b56a598b 100644 --- a/test/actions/mock/mockHost.ts +++ b/test/actions/mock/mockHost.ts @@ -56,6 +56,7 @@ export class mockHost implements IHostAbstractions { trackingId = '00000000-0000-0000-0000-000000000005'; stageId = '00000000-0000-0000-0000-000000000006'; deploymentEnvironment = '00000000-0000-0000-0000-000000000007'; + securityGroupId = '00000000-0000-0000-0000-000000000008'; version = '1.2.3.4'; requestType = 'install'; relativeCatalogSubmissionPath = './CatalogSubmission.json'; @@ -97,6 +98,7 @@ export class mockHost implements IHostAbstractions { case 'Purpose': return this.purpose; case 'BuildVersion': return this.buildVersion; case 'TeamId': return this.teamId; + case 'SecurityGroupId': return this.securityGroupId; case "User": return this.user; case "Role": return this.role; case "SchemaFile": return this.schemaFile;