From c804336e66d6fd3f2324897b2eaf7ea81b6fd244 Mon Sep 17 00:00:00 2001 From: Teddy Date: Sun, 18 May 2025 22:59:05 +0200 Subject: [PATCH] ISSUE #20962 - Issues with test case alerts (#21253) * fix: test case alerts and un-indexable fields * fix: test case alerts and un-indexable fields (cherry picked from commit b1edb964699c1d365b9e1154f05591e4b26ebb21) --- .../org/openmetadata/service/jdbi3/EntityRepository.java | 2 +- .../openmetadata/service/jdbi3/TestCaseRepository.java | 6 ++++++ .../service/jdbi3/TestCaseResultRepository.java | 9 ++++++++- .../openmetadata/service/jdbi3/TestSuiteRepository.java | 6 ++++++ .../service/search/indexes/TestCaseIndex.java | 3 ++- .../service/search/indexes/TestCaseResultIndex.java | 3 ++- 6 files changed, 25 insertions(+), 4 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java index 987c51598e6..1f2012b2389 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java @@ -3993,7 +3993,7 @@ public abstract class EntityRepository { sessionTimeoutMillis = timeout; } - private boolean consolidateChanges(T original, T updated, Operation operation) { + protected boolean consolidateChanges(T original, T updated, Operation operation) { // If user is the same and the new update is with in the user session timeout return original.getVersion() > 0.1 // First update on an entity that && operation == Operation.PATCH diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java index 39ae4b16b70..5cfbf4d3d9e 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java @@ -710,6 +710,11 @@ public class TestCaseRepository extends EntityRepository { super(original, updated, operation); } + @Override + protected boolean consolidateChanges(TestCase original, TestCase updated, Operation operation) { + return false; + } + @Transaction @Override public void entitySpecificUpdate(boolean consolidatingChanges) { @@ -754,6 +759,7 @@ public class TestCaseRepository extends EntityRepository { original.getUseDynamicAssertion(), updated.getUseDynamicAssertion()); recordChange("testCaseStatus", original.getTestCaseStatus(), updated.getTestCaseStatus()); + recordChange("testCaseResult", original.getTestCaseResult(), updated.getTestCaseResult()); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseResultRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseResultRepository.java index 48060e620a0..3497cc95309 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseResultRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseResultRepository.java @@ -243,10 +243,17 @@ public class TestCaseResultRepository extends EntityTimeSeriesRepository s.getTestCaseName().equals(testCase.getFullyQualifiedName())) .findFirst() - .ifPresent( + .ifPresentOrElse( s -> { s.setStatus(testCase.getTestCaseStatus()); s.setTimestamp(testCase.getTestCaseResult().getTimestamp()); + }, + () -> { + resultSummaries.add( + new ResultSummary() + .withTestCaseName(testCase.getFullyQualifiedName()) + .withStatus(testCase.getTestCaseStatus()) + .withTimestamp(testCase.getTestCaseResult().getTimestamp())); }); } else { testSuite.setTestCaseResultSummary( diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestSuiteRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestSuiteRepository.java index 769175c2fdd..6e1c5fab368 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestSuiteRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestSuiteRepository.java @@ -565,6 +565,12 @@ public class TestSuiteRepository extends EntityRepository { super(original, updated, operation); } + @Override + protected boolean consolidateChanges( + TestSuite original, TestSuite updated, Operation operation) { + return false; + } + @Transaction @Override public void entitySpecificUpdate(boolean consolidatingChanges) { diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseIndex.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseIndex.java index b08894a0574..cdd369c0aa2 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseIndex.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseIndex.java @@ -16,7 +16,8 @@ import org.openmetadata.service.search.SearchIndexUtils; import org.openmetadata.service.search.models.SearchSuggest; public record TestCaseIndex(TestCase testCase) implements SearchIndex { - private static final Set excludeFields = Set.of("changeDescription", "failedRowsSample"); + private static final Set excludeFields = + Set.of("changeDescription", "failedRowsSample", "incrementalChangeDescription"); @Override public Object getEntity() { diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseResultIndex.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseResultIndex.java index 889afc80adf..31f8acd5c05 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseResultIndex.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/indexes/TestCaseResultIndex.java @@ -16,7 +16,8 @@ import org.openmetadata.service.search.SearchIndexUtils; import org.openmetadata.service.util.JsonUtils; public record TestCaseResultIndex(TestCaseResult testCaseResult) implements SearchIndex { - private static final Set excludeFields = Set.of("changeDescription", "failedRowsSample"); + private static final Set excludeFields = + Set.of("changeDescription", "failedRowsSample", "incrementalChangeDescription"); @Override public Object getEntity() {