66 "testing"
77
88 "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags"
9- "github.com/stackitcloud/stackit-cli/internal/pkg/testparams "
9+ "github.com/stackitcloud/stackit-cli/internal/pkg/testutils "
1010 "github.com/stackitcloud/stackit-cli/internal/pkg/utils"
1111
1212 "github.com/google/go-cmp/cmp"
@@ -63,7 +63,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st
6363 metricsFrequencyFlag : "100" ,
6464 metricsPrefixFlag : "example-prefix" ,
6565 monitoringInstanceIdFlag : testMonitoringInstanceId ,
66- pluginFlag : "example-plugin" ,
66+ flagPlugins . Name () : string ( rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_MQTT ) ,
6767 sgwAclFlag : "198.51.100.14/24" ,
6868 syslogFlag : "example-syslog" ,
6969 planIdFlag : testPlanId ,
@@ -87,7 +87,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
8787 MetricsFrequency : utils .Ptr (int32 (100 )),
8888 MetricsPrefix : utils .Ptr ("example-prefix" ),
8989 MonitoringInstanceId : utils .Ptr (testMonitoringInstanceId ),
90- Plugin : []rabbitmq.InstanceParametersPluginsInner {"example-plugin" },
90+ Plugin : []rabbitmq.InstanceParametersPluginsInner {rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_MQTT },
9191 SgwAcl : utils .Ptr ([]string {"198.51.100.14/24" }),
9292 Syslog : []string {"example-syslog" },
9393 PlanId : utils .Ptr (testPlanId ),
@@ -107,7 +107,7 @@ func fixtureRequest(mods ...func(request *rabbitmq.ApiPartialUpdateInstanceReque
107107 MetricsFrequency : utils .Ptr (int32 (100 )),
108108 MetricsPrefix : utils .Ptr ("example-prefix" ),
109109 MonitoringInstanceId : utils .Ptr (testMonitoringInstanceId ),
110- Plugins : []rabbitmq.InstanceParametersPluginsInner {"example-plugin" },
110+ Plugins : []rabbitmq.InstanceParametersPluginsInner {rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_MQTT },
111111 SgwAcl : utils .Ptr ("198.51.100.14/24" ),
112112 Syslog : []string {"example-syslog" },
113113 },
@@ -270,11 +270,11 @@ func TestParseInput(t *testing.T) {
270270 description : "repeated plugin flags" ,
271271 argValues : fixtureArgValues (),
272272 flagValues : fixtureFlagValues (),
273- pluginValues : []string {"example-plugin-1" , "example-plugin-2" },
273+ pluginValues : []string {string ( rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_MQTT ), string ( rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_CONSISTENT_HASH_EXCHANGE ) },
274274 isValid : true ,
275275 expectedModel : fixtureInputModel (func (model * inputModel ) {
276276 model .Plugin =
277- append (model .Plugin , "example-plugin-1" , "example-plugin-2" )
277+ append (model .Plugin , rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_MQTT , rabbitmq . INSTANCEPARAMETERSPLUGINSINNER_RABBITMQ_CONSISTENT_HASH_EXCHANGE )
278278 }),
279279 },
280280 {
@@ -292,84 +292,11 @@ func TestParseInput(t *testing.T) {
292292
293293 for _ , tt := range tests {
294294 t .Run (tt .description , func (t * testing.T ) {
295- params := testparams .NewTestParams ()
296- cmd := NewCmd (params .CmdParams )
297- err := globalflags .Configure (cmd .Flags ())
298- if err != nil {
299- t .Fatalf ("configure global flags: %v" , err )
300- }
301-
302- for flag , value := range tt .flagValues {
303- err := cmd .Flags ().Set (flag , value )
304- if err != nil {
305- if ! tt .isValid {
306- return
307- }
308- t .Fatalf ("setting flag --%s=%s: %v" , flag , value , err )
309- }
310- }
311-
312- for _ , value := range tt .sgwAclValues {
313- err := cmd .Flags ().Set (sgwAclFlag , value )
314- if err != nil {
315- if ! tt .isValid {
316- return
317- }
318- t .Fatalf ("setting flag --%s=%s: %v" , sgwAclFlag , value , err )
319- }
320- }
321-
322- for _ , value := range tt .pluginValues {
323- err := cmd .Flags ().Set (pluginFlag , value )
324- if err != nil {
325- if ! tt .isValid {
326- return
327- }
328- t .Fatalf ("setting flag --%s=%s: %v" , pluginFlag , value , err )
329- }
330- }
331-
332- for _ , value := range tt .syslogValues {
333- err := cmd .Flags ().Set (syslogFlag , value )
334- if err != nil {
335- if ! tt .isValid {
336- return
337- }
338- t .Fatalf ("setting flag --%s=%s: %v" , syslogFlag , value , err )
339- }
340- }
341-
342- err = cmd .ValidateArgs (tt .argValues )
343- if err != nil {
344- if ! tt .isValid {
345- return
346- }
347- t .Fatalf ("error validating args: %v" , err )
348- }
349-
350- err = cmd .ValidateRequiredFlags ()
351- if err != nil {
352- if ! tt .isValid {
353- return
354- }
355- t .Fatalf ("error validating flags: %v" , err )
356- }
357-
358- model , err := parseInput (params .Printer , cmd , tt .argValues )
359- if err != nil {
360- if ! tt .isValid {
361- return
362- }
363- t .Fatalf ("error parsing flags: %v" , err )
364- }
365-
366- if ! tt .isValid {
367- t .Fatalf ("did not fail on invalid input" )
368- }
369- diff := cmp .Diff (model , tt .expectedModel )
370- if diff != "" {
371- t .Fatalf ("Data does not match: %s" , diff )
372- }
295+ testutils .TestParseInputWithAdditionalFlags (t , NewCmd , parseInput , tt .expectedModel , tt .argValues , tt .flagValues , map [string ][]string {
296+ sgwAclFlag : tt .sgwAclValues ,
297+ syslogFlag : tt .syslogValues ,
298+ flagPlugins .Name (): tt .pluginValues ,
299+ }, tt .isValid )
373300 })
374301 }
375302}
0 commit comments