From 41247faff21aa5880901518d9e25bff423c82042 Mon Sep 17 00:00:00 2001 From: Mario Rodriguez Molins Date: Wed, 5 Feb 2025 10:42:42 +0100 Subject: [PATCH] Run validation mappings before validating ignored fields --- internal/testrunner/runners/system/tester.go | 22 +++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/internal/testrunner/runners/system/tester.go b/internal/testrunner/runners/system/tester.go index df51b8683a..53b67a0521 100644 --- a/internal/testrunner/runners/system/tester.go +++ b/internal/testrunner/runners/system/tester.go @@ -1394,6 +1394,8 @@ func (r *tester) prepareScenario(ctx context.Context, config *testConfig, stackC return hits.size() > 0, nil }, 1*time.Second, waitForDataTimeout) + // before checking "waitErr" error , it is necessary to check if the service has finished with error + // to report it as a test case failed if service != nil && config.Service != "" && !config.IgnoreServiceError { exited, code, err := service.ExitCode(ctx, config.Service) if err != nil && !errors.Is(err, servicedeployer.ErrNotSupported) { @@ -1637,16 +1639,6 @@ func (r *tester) validateTestScenario(ctx context.Context, result *testrunner.Re }) } - stackVersion, err := semver.NewVersion(r.stackVersion.Number) - if err != nil { - return result.WithErrorf("failed to parse stack version: %w", err) - } - - err = validateIgnoredFields(stackVersion, scenario, config) - if err != nil { - return result.WithError(err) - } - if r.fieldValidationMethod == mappingsMethod { logger.Warn("Validation based on mappings enabled (technical preview)") exceptionFields := listExceptionFields(scenario.docs, fieldsValidator) @@ -1669,6 +1661,16 @@ func (r *tester) validateTestScenario(ctx context.Context, result *testrunner.Re } } + stackVersion, err := semver.NewVersion(r.stackVersion.Number) + if err != nil { + return result.WithErrorf("failed to parse stack version: %w", err) + } + + err = validateIgnoredFields(stackVersion, scenario, config) + if err != nil { + return result.WithError(err) + } + docs := scenario.docs if scenario.syntheticEnabled { docs, err = fieldsValidator.SanitizeSyntheticSourceDocs(scenario.docs)