mirror of
https://github.com/argoproj/argo-cd
synced 2026-04-21 17:07:16 +00:00
* Add `Prompt`, with `prompts.enabled` setting in `argocd-cm` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Make `SettingsOpts`, `SettingsOpts.ArgocdCMPath`, `SettingsOpts.CreateSettingsManager()` and `commandContext.CreateSettingsManager()` exportable Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add `prompt_test.go` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Refactor `NewPrompt()` and move into new package `utils` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Update `NewPrompt()` to use local config Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add `NewConfigurationCommand()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Move `prompt_test.go` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Remove `prompt_test.go` for now Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add back and update `prompt_test.go` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add `configuration_test.go` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Fix linting issues Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Fix linting issues Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Reverse early-termination logic in `Confirm()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Rename `ArgocdCMPath` to `argocdCMPath` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Rename `SettingsOpts` to `settingsOpts` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Rename `CreateSettingsManager()` to `createSettingsManager()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Rename `configuration` to `configure` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Further rename `configuration` to `configure` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Remove redundant Argo CD ConfigMap logic Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Fix terminal output spacing Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Make `argocd configure` use local config value as the default value for `--prompts-enabled` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add global CLI flag `--force-prompts-enabled` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Update existing `prompt_test.go` test cases Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add test case for `(p *Prompt).Confirm()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add test cases for `GetBoolFlagWithFallback()` to `env_test.go` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Format imports Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Further format imports and remove unused variable Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Again format imports Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add fallback to `GetPromptsEnabled()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Fix bug in `GetPromptsEnabled()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Fix missing import Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add auto-generated docs for `argocd configure` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add auto-generated docs for new global CLI flag `--force-prompts-enabled` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Update `NewPrompt()` to receive a `bool` rather than `*apiclient.ClientOptions` arg Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Remove arg `fallback` from `GetPromptsEnabled()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add arg `useCLIOpts bool` to `GetPromptsEnabled()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Make `config.LoadFlags()` exportable Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Add tests for `GetPromptsEnabled()` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Fix linting errors in tests Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> * Run `make codegen-local` Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com> --------- Signed-off-by: David Wu <155603967+david-wu-octopus@users.noreply.github.com>
97 lines
3 KiB
Go
97 lines
3 KiB
Go
package commands
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
argocdclient "github.com/argoproj/argo-cd/v2/pkg/apiclient"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/argoproj/argo-cd/v2/util/localconfig"
|
|
)
|
|
|
|
func TestNewConfigureCommand_PromptsEnabled_DefaultTrue(t *testing.T) {
|
|
// Write the test config file
|
|
err := os.WriteFile(testConfigFilePath, []byte(testConfig), os.ModePerm)
|
|
require.NoError(t, err)
|
|
|
|
defer os.Remove(testConfigFilePath)
|
|
|
|
err = os.Chmod(testConfigFilePath, 0o600)
|
|
require.NoError(t, err, "Could not change the file permission to 0600 %v", err)
|
|
|
|
localConfig, err := localconfig.ReadLocalConfig(testConfigFilePath)
|
|
require.NoError(t, err)
|
|
assert.False(t, localConfig.PromptsEnabled)
|
|
|
|
// Set `PromptsEnabled` to `true` using `argocd configure --prompts-enabled`
|
|
cmd := NewConfigureCommand(&argocdclient.ClientOptions{ConfigPath: testConfigFilePath})
|
|
cmd.SetArgs([]string{"--prompts-enabled"})
|
|
|
|
err = cmd.Execute()
|
|
require.NoError(t, err)
|
|
|
|
// Read the test config file
|
|
localConfig, err = localconfig.ReadLocalConfig(testConfigFilePath)
|
|
require.NoError(t, err)
|
|
|
|
assert.True(t, localConfig.PromptsEnabled)
|
|
}
|
|
|
|
func TestNewConfigureCommand_PromptsEnabled_True(t *testing.T) {
|
|
// Write the test config file
|
|
err := os.WriteFile(testConfigFilePath, []byte(testConfig), os.ModePerm)
|
|
require.NoError(t, err)
|
|
|
|
defer os.Remove(testConfigFilePath)
|
|
|
|
err = os.Chmod(testConfigFilePath, 0o600)
|
|
require.NoError(t, err, "Could not change the file permission to 0600 %v", err)
|
|
|
|
localConfig, err := localconfig.ReadLocalConfig(testConfigFilePath)
|
|
require.NoError(t, err)
|
|
assert.False(t, localConfig.PromptsEnabled)
|
|
|
|
// Set `PromptsEnabled` to `true` using `argocd configure --prompts-enabled=true`
|
|
cmd := NewConfigureCommand(&argocdclient.ClientOptions{ConfigPath: testConfigFilePath})
|
|
cmd.SetArgs([]string{"--prompts-enabled=true"})
|
|
|
|
err = cmd.Execute()
|
|
require.NoError(t, err)
|
|
|
|
// Read the test config file
|
|
localConfig, err = localconfig.ReadLocalConfig(testConfigFilePath)
|
|
require.NoError(t, err)
|
|
|
|
assert.True(t, localConfig.PromptsEnabled)
|
|
}
|
|
|
|
func TestNewConfigureCommand_PromptsEnabled_False(t *testing.T) {
|
|
// Write the test config file
|
|
err := os.WriteFile(testConfigFilePath, []byte(testConfig), os.ModePerm)
|
|
require.NoError(t, err)
|
|
|
|
defer os.Remove(testConfigFilePath)
|
|
|
|
err = os.Chmod(testConfigFilePath, 0o600)
|
|
require.NoError(t, err, "Could not change the file permission to 0600 %v", err)
|
|
|
|
localConfig, err := localconfig.ReadLocalConfig(testConfigFilePath)
|
|
require.NoError(t, err)
|
|
assert.False(t, localConfig.PromptsEnabled)
|
|
|
|
// Set `PromptsEnabled` to `false` using `argocd configure --prompts-enabled=false`
|
|
cmd := NewConfigureCommand(&argocdclient.ClientOptions{ConfigPath: testConfigFilePath})
|
|
cmd.SetArgs([]string{"--prompts-enabled=false"})
|
|
|
|
err = cmd.Execute()
|
|
require.NoError(t, err)
|
|
|
|
// Read the test config file
|
|
localConfig, err = localconfig.ReadLocalConfig(testConfigFilePath)
|
|
require.NoError(t, err)
|
|
|
|
assert.False(t, localConfig.PromptsEnabled)
|
|
}
|