diff --git a/cmd/npmExecuteTests.go b/cmd/npmExecuteTests.go index 80b6685dee..2f835127c5 100644 --- a/cmd/npmExecuteTests.go +++ b/cmd/npmExecuteTests.go @@ -57,7 +57,7 @@ func runNpmExecuteTests(config *npmExecuteTestsOptions, c command.ExecRunner) er } for _, app := range apps { - credentialsToEnv(app.Username, app.Password, config.CredentialsEnvVarPrefix, c) + credentialsToEnv(app.Username, app.Password, config.UsernameEnvVar, config.PasswordEnvVar, c) err := runTestForUrl(app.URL, config, c) if err != nil { return err @@ -66,7 +66,7 @@ func runNpmExecuteTests(config *npmExecuteTestsOptions, c command.ExecRunner) er username := config.VaultMetadata["username"].(string) password := config.VaultMetadata["password"].(string) - credentialsToEnv(username, password, config.CredentialsEnvVarPrefix, c) + credentialsToEnv(username, password, config.UsernameEnvVar, config.PasswordEnvVar, c) if err := runTestForUrl(config.BaseURL, config, c); err != nil { return err } @@ -86,6 +86,9 @@ func runTestForUrl(url string, config *npmExecuteTestsOptions, command command.E return nil } -func credentialsToEnv(username, password, prefix string, c command.ExecRunner) { - c.SetEnv([]string{prefix + "_username=" + username, prefix + "_password=" + password}) +func credentialsToEnv(username, password, usernameEnv, passwordEnv string, c command.ExecRunner) { + if username == "" || password == "" { + return + } + c.SetEnv([]string{usernameEnv + "=" + username, passwordEnv + "=" + password}) } diff --git a/cmd/npmExecuteTests_generated.go b/cmd/npmExecuteTests_generated.go index 42cdf3c02f..2c7167127b 100644 --- a/cmd/npmExecuteTests_generated.go +++ b/cmd/npmExecuteTests_generated.go @@ -20,14 +20,15 @@ import ( ) type npmExecuteTestsOptions struct { - InstallCommand string `json:"installCommand,omitempty"` - RunCommand string `json:"runCommand,omitempty"` - VaultMetadata map[string]interface{} `json:"vaultMetadata,omitempty"` - BaseURL string `json:"baseUrl,omitempty"` - CredentialsEnvVarPrefix string `json:"credentialsEnvVarPrefix,omitempty"` - UrlOptionPrefix string `json:"urlOptionPrefix,omitempty"` - EnvVars []string `json:"envVars,omitempty"` - Paths []string `json:"paths,omitempty"` + InstallCommand string `json:"installCommand,omitempty"` + RunCommand string `json:"runCommand,omitempty"` + VaultMetadata map[string]interface{} `json:"vaultMetadata,omitempty"` + BaseURL string `json:"baseUrl,omitempty"` + UsernameEnvVar string `json:"usernameEnvVar,omitempty"` + PasswordEnvVar string `json:"passwordEnvVar,omitempty"` + UrlOptionPrefix string `json:"urlOptionPrefix,omitempty"` + EnvVars []string `json:"envVars,omitempty"` + Paths []string `json:"paths,omitempty"` } type npmExecuteTestsReports struct { @@ -177,7 +178,8 @@ func addNpmExecuteTestsFlags(cmd *cobra.Command, stepConfig *npmExecuteTestsOpti cmd.Flags().StringVar(&stepConfig.RunCommand, "runCommand", `npm run wdi5`, "Command to be executed for running tests`.") cmd.Flags().StringVar(&stepConfig.BaseURL, "baseUrl", `http://localhost:8080/index.html`, "Base URL of the application to be tested.") - cmd.Flags().StringVar(&stepConfig.CredentialsEnvVarPrefix, "credentialsEnvVarPrefix", `wdi5`, "Prefix for username and password env vars.") + cmd.Flags().StringVar(&stepConfig.UsernameEnvVar, "usernameEnvVar", `wdi5_username`, "Env var for username.") + cmd.Flags().StringVar(&stepConfig.PasswordEnvVar, "passwordEnvVar", `wdi5_password`, "Env var for password.") cmd.Flags().StringVar(&stepConfig.UrlOptionPrefix, "urlOptionPrefix", os.Getenv("PIPER_urlOptionPrefix"), "If you want to specify an extra option that the tested url it appended to.\nFor example if the test URL is `http://localhost and urlOptionPrefix is `--base-url=`,\nwe'll add `--base-url=http://localhost` to your runScript.\n") cmd.Flags().StringSliceVar(&stepConfig.EnvVars, "envVars", []string{}, "List of environment variables to be set") cmd.Flags().StringSliceVar(&stepConfig.Paths, "paths", []string{}, "List of paths to be added to $PATH") @@ -238,13 +240,22 @@ func npmExecuteTestsMetadata() config.StepData { Default: `http://localhost:8080/index.html`, }, { - Name: "credentialsEnvVarPrefix", + Name: "usernameEnvVar", ResourceRef: []config.ResourceReference{}, Scope: []string{}, Type: "string", Mandatory: false, Aliases: []config.Alias{}, - Default: `wdi5`, + Default: `wdi5_username`, + }, + { + Name: "passwordEnvVar", + ResourceRef: []config.ResourceReference{}, + Scope: []string{}, + Type: "string", + Mandatory: false, + Aliases: []config.Alias{}, + Default: `wdi5_password`, }, { Name: "urlOptionPrefix", diff --git a/resources/metadata/npmExecuteTests.yaml b/resources/metadata/npmExecuteTests.yaml index 66066fad0d..a809af7d8c 100644 --- a/resources/metadata/npmExecuteTests.yaml +++ b/resources/metadata/npmExecuteTests.yaml @@ -57,10 +57,14 @@ spec: - PARAMETERS - STAGES - STEPS - - name: credentialsEnvVarPrefix + - name: usernameEnvVar type: string - default: "wdi5" - description: Prefix for username and password env vars. + default: "wdi5_username" + description: Env var for username. + - name: passwordEnvVar + type: string + default: "wdi5_password" + description: Env var for password. - name: urlOptionPrefix type: string description: |