Files
osmedeus/pkg/cli/config_normalize_test.go
j3ssie 0269cf4e26 feat: update Next.js build assets and add cloud setup E2E tests
- Update Next.js generated chunk hashes and build IDs reflecting latest dashboard build
- Update CSS stylesheet references in workflow upload page metadata
- Add comprehensive cloud setup E2E test suite (cloud_setup_test.go) with SSH password/key auth, post-command variable expansion, and Ansible integration
- Fix API priority levels to include 'medium' priority in test coverage
- Add agent-sdk test workflows (minimal, config, codex, multi-agent, session variants)
- Update E2E test utilities with runCLIInBase helper for multi-step cloud config tests
- Fix stderr/stdout capture in dependencies_target_types_test assertions
2026-04-04 13:57:34 +08:00

92 lines
2.1 KiB
Go

package cli
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestNormalizeConfigSetArgs(t *testing.T) {
tests := []struct {
name string
args []string
wantKey string
wantValue string
wantErr bool
}{
{
name: "clear key - no value arg",
args: []string{"setup.commands.clear"},
wantKey: "setup.commands.clear",
},
{
name: "clear key - empty string value",
args: []string{"setup.commands.clear", ""},
wantKey: "setup.commands.clear",
},
{
name: "clear key - equals and empty",
args: []string{"setup.commands.clear", "=", ""},
wantKey: "setup.commands.clear",
},
{
name: "clear key - post_commands variant",
args: []string{"setup.post_commands.clear"},
wantKey: "setup.post_commands.clear",
},
{
name: "normal key-value pair",
args: []string{"defaults.provider", "digitalocean"},
wantKey: "defaults.provider",
wantValue: "digitalocean",
},
{
name: "key-value with equals separator",
args: []string{"defaults.provider", "=", "digitalocean"},
wantKey: "defaults.provider",
wantValue: "digitalocean",
},
{
name: "key with trailing equals",
args: []string{"defaults.provider=", "digitalocean"},
wantKey: "defaults.provider",
wantValue: "digitalocean",
},
{
name: "value with leading equals",
args: []string{"defaults.provider", "=digitalocean"},
wantKey: "defaults.provider",
wantValue: "digitalocean",
},
{
name: "empty args",
args: []string{},
wantErr: true,
},
{
name: "single non-clear key",
args: []string{"defaults.provider"},
wantErr: true,
},
{
name: "only equals and empty strings",
args: []string{"=", "", "="},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
key, value, err := normalizeConfigSetArgs(tt.args)
if tt.wantErr {
require.Error(t, err)
return
}
require.NoError(t, err)
assert.Equal(t, tt.wantKey, key)
assert.Equal(t, tt.wantValue, value)
})
}
}