topdata: fix global validation regressions
This commit is contained in:
@@ -990,16 +990,42 @@ func validateOverridesFileWithColumns(path string, obj map[string]any, report *V
|
||||
}
|
||||
}
|
||||
|
||||
func parseGlobalConditionGroupsWithoutKeyCheck(injection map[string]any) (globalConditionGroups, error) {
|
||||
var groups globalConditionGroups
|
||||
if raw, ok := injection["require_present"]; ok {
|
||||
parsed, err := parseGlobalConditionList("require_present", raw, false)
|
||||
if err != nil {
|
||||
return globalConditionGroups{}, err
|
||||
}
|
||||
groups.RequirePresent = parsed
|
||||
}
|
||||
if raw, ok := injection["any_present"]; ok {
|
||||
parsed, err := parseGlobalConditionList("any_present", raw, true)
|
||||
if err != nil {
|
||||
return globalConditionGroups{}, err
|
||||
}
|
||||
groups.AnyPresent = parsed
|
||||
}
|
||||
if raw, ok := injection["unless_present"]; ok {
|
||||
parsed, err := parseGlobalConditionList("unless_present", raw, false)
|
||||
if err != nil {
|
||||
return globalConditionGroups{}, err
|
||||
}
|
||||
groups.UnlessPresent = parsed
|
||||
}
|
||||
return groups, nil
|
||||
}
|
||||
|
||||
func validateGlobalJSONFile(path string, obj map[string]any, report *ValidationReport) {
|
||||
reportTopdataContractError(path, unsupportedObjectKeysError("global.json root", obj, globalRootKeys...), report)
|
||||
if _, ok := obj["columns"]; ok {
|
||||
validateColumnsFile(path, obj, report)
|
||||
}
|
||||
if _, ok := obj["entries"]; ok {
|
||||
validateEntriesFile(path, obj, report)
|
||||
validateEntriesFileWithColumns(path, obj, report, false)
|
||||
}
|
||||
if _, ok := obj["overrides"]; ok {
|
||||
validateOverridesFile(path, obj, report)
|
||||
validateOverridesFileWithColumns(path, obj, report, false)
|
||||
}
|
||||
if _, ok := obj["defaults"]; ok {
|
||||
validateGlobalDefaults(path, obj, report)
|
||||
@@ -1060,10 +1086,8 @@ func validateGlobalJSONFile(path string, obj map[string]any, report *ValidationR
|
||||
} else {
|
||||
rows = append(rows, row)
|
||||
}
|
||||
if err == nil {
|
||||
_, conditionErr := parseGlobalConditionGroups(injection)
|
||||
reportTopdataContractError(path, conditionErr, report)
|
||||
}
|
||||
_, conditionErr := parseGlobalConditionGroupsWithoutKeyCheck(injection)
|
||||
reportTopdataContractError(path, conditionErr, report)
|
||||
}
|
||||
validateRowCollection(path, obj, rows, report)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user