package config import ( "reflect" "testing" "gopkg.in/yaml.v3" ) func TestAuditaYAMLPreservesModuleSelection(t *testing.T) { for _, tc := range []struct { name string modules []string }{ {name: "omitted"}, {name: "explicit empty", modules: []string{}}, {name: "ordered repetitions", modules: []string{"grammar", "names", "grammar"}}, } { t.Run(tc.name, func(t *testing.T) { data, err := yaml.Marshal(AuditaConfig{Modules: tc.modules}) if err != nil { t.Fatal(err) } var decoded AuditaConfig if err := yaml.Unmarshal(data, &decoded); err != nil { t.Fatal(err) } if !reflect.DeepEqual(decoded.Modules, tc.modules) { t.Fatalf("modules = %#v, want %#v; YAML:\n%s", decoded.Modules, tc.modules, data) } }) } }