|
7 | 7 |
|
8 | 8 | "github.com/BurntSushi/toml"
|
9 | 9 | "github.com/stretchr/testify/assert"
|
10 |
| - "github.com/urfave/cli/v2" |
11 | 10 |
|
12 |
| - "github.com/rubiojr/hashup/internal/config" |
| 11 | + "github.com/rubiojr/hashup/pkg/config" |
13 | 12 | )
|
14 | 13 |
|
15 | 14 | func TestDefaultConfig(t *testing.T) {
|
@@ -97,104 +96,6 @@ func TestSaveConfig(t *testing.T) {
|
97 | 96 | assert.Equal(t, "nats://customserver:4222", loadedCfg.Main.NatsServerURL)
|
98 | 97 | }
|
99 | 98 |
|
100 |
| -func TestLoadConfigFromCLI(t *testing.T) { |
101 |
| - t.Skip("broken") |
102 |
| - tempDir := t.TempDir() |
103 |
| - configPath := filepath.Join(tempDir, "cli_config.toml") |
104 |
| - |
105 |
| - // Create a basic config file |
106 |
| - basicCfg := config.DefaultConfig() |
107 |
| - err := config.SaveConfig(basicCfg, configPath) |
108 |
| - assert.NoError(t, err) |
109 |
| - |
110 |
| - tests := []struct { |
111 |
| - name string |
112 |
| - args []string |
113 |
| - validate func(*testing.T, *config.Config) |
114 |
| - }{ |
115 |
| - { |
116 |
| - name: "Custom config file", |
117 |
| - args: []string{"--config", configPath}, |
118 |
| - validate: func(t *testing.T, cfg *config.Config) { |
119 |
| - assert.Equal(t, configPath, cfg.Path) |
120 |
| - }, |
121 |
| - }, |
122 |
| - { |
123 |
| - name: "Custom encryption key", |
124 |
| - args: []string{"--config", configPath, "--encryption-key", "testkey123"}, |
125 |
| - validate: func(t *testing.T, cfg *config.Config) { |
126 |
| - assert.Equal(t, "testkey123", cfg.Main.EncryptionKey) |
127 |
| - }, |
128 |
| - }, |
129 |
| - { |
130 |
| - name: "Custom DB path", |
131 |
| - args: []string{"--config", configPath, "--db-path", "/custom/db/path"}, |
132 |
| - validate: func(t *testing.T, cfg *config.Config) { |
133 |
| - assert.Equal(t, "/custom/db/path", cfg.Store.DBPath) |
134 |
| - }, |
135 |
| - }, |
136 |
| - { |
137 |
| - name: "Custom stats interval", |
138 |
| - args: []string{"--config", configPath, "--stats-interval", "120"}, |
139 |
| - validate: func(t *testing.T, cfg *config.Config) { |
140 |
| - assert.Equal(t, 120, cfg.Store.StatsInterval) |
141 |
| - }, |
142 |
| - }, |
143 |
| - { |
144 |
| - name: "Custom NATS URL", |
145 |
| - args: []string{"--config", configPath, "--nats-url", "nats://custom:4222"}, |
146 |
| - validate: func(t *testing.T, cfg *config.Config) { |
147 |
| - assert.Equal(t, "nats://custom:4222", cfg.Main.NatsServerURL) |
148 |
| - }, |
149 |
| - }, |
150 |
| - } |
151 |
| - |
152 |
| - for _, tt := range tests { |
153 |
| - t.Run(tt.name, func(t *testing.T) { |
154 |
| - app := cli.NewApp() |
155 |
| - ctx := cli.NewContext(app, nil, nil) |
156 |
| - |
157 |
| - // Set up flags |
158 |
| - flags := map[string]any{ |
159 |
| - "config": configPath, |
160 |
| - "encryption-key": "", |
161 |
| - "db-path": "", |
162 |
| - "stats-interval": 0, |
163 |
| - "nats-url": "", |
164 |
| - "stream": "", |
165 |
| - "client-cert": "", |
166 |
| - "client-key": "", |
167 |
| - "ca-cert": "", |
168 |
| - } |
169 |
| - |
170 |
| - // Apply command line args |
171 |
| - for i := 0; i < len(tt.args); i += 2 { |
172 |
| - if i+1 < len(tt.args) { |
173 |
| - flagName := tt.args[i][2:] // Remove -- |
174 |
| - flagValue := tt.args[i+1] |
175 |
| - flags[flagName] = flagValue |
176 |
| - } |
177 |
| - } |
178 |
| - |
179 |
| - // Set values in the context |
180 |
| - for name, value := range flags { |
181 |
| - switch v := value.(type) { |
182 |
| - case string: |
183 |
| - ctx.Set(name, v) |
184 |
| - case int: |
185 |
| - if v != 0 { |
186 |
| - ctx.Set(name, string(rune(v))) |
187 |
| - } |
188 |
| - } |
189 |
| - } |
190 |
| - |
191 |
| - cfg, err := config.LoadConfigFromCLI(ctx) |
192 |
| - assert.NoError(t, err) |
193 |
| - tt.validate(t, cfg) |
194 |
| - }) |
195 |
| - } |
196 |
| -} |
197 |
| - |
198 | 99 | func TestDefaultPaths(t *testing.T) {
|
199 | 100 | homeDir, _ := os.UserHomeDir()
|
200 | 101 |
|
|
0 commit comments