diff --git a/snapshot/policy/policy_merge_test.go b/snapshot/policy/policy_merge_test.go index 5cbe2a1b1..8a2868046 100644 --- a/snapshot/policy/policy_merge_test.go +++ b/snapshot/policy/policy_merge_test.go @@ -36,21 +36,23 @@ func ensureTypesMatch(t *testing.T, policyType, definitionType reflect.Type) { for i := range policyType.NumField() { f := policyType.Field(i) - dt, ok := definitionType.FieldByName(f.Name) - if !ok { - require.True(t, omittedDefinitionFields[definitionType.Name()+"."+f.Name], "definition field %q not found in %q", f.Name, definitionType.Name()) - continue - } + t.Run(definitionType.Name()+"_"+f.Name, func(t *testing.T) { + t.Logf("f: %v %v", definitionType.Name(), f.Name) - t.Logf("f: %v %v", definitionType.Name(), f.Name) + dt, ok := definitionType.FieldByName(f.Name) + if !ok { + require.True(t, omittedDefinitionFields[definitionType.Name()+"."+f.Name], "definition field %q not found in %q", f.Name, definitionType.Name()) + return + } - if f.Type.Kind() == reflect.Struct { - ensureTypesMatch(t, f.Type, dt.Type) - } else { - require.True(t, sourceInfoType.AssignableTo(dt.Type), "invalid type of %v.%v - %v", definitionType.Name(), dt.Name, dt.Type) - } + if f.Type.Kind() == reflect.Struct { + ensureTypesMatch(t, f.Type, dt.Type) + } else { + require.True(t, sourceInfoType.AssignableTo(dt.Type), "invalid type of %v.%v - %v", definitionType.Name(), dt.Name, dt.Type) + } - require.Equal(t, f.Tag.Get("json"), dt.Tag.Get("json"), dt.Name) + require.Equal(t, f.Tag.Get("json"), dt.Tag.Get("json"), dt.Name) + }) } }