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 41e5f112d190..32656809143e 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 @@ -147,7 +147,8 @@ public void setFields(TestSuite entity, EntityUtil.Fields fields) { public void setInheritedFields(TestSuite testSuite, EntityUtil.Fields fields) { if (Boolean.TRUE.equals(testSuite.getExecutable())) { Table table = - Entity.getEntity(TABLE, testSuite.getExecutableEntityReference().getId(), "owners", ALL); + Entity.getEntity( + TABLE, testSuite.getExecutableEntityReference().getId(), "owners,domain", ALL); inheritOwners(testSuite, fields, table); inheritDomain(testSuite, fields, table); } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java index 7b8d5979c899..f1eba18f6b88 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestSuiteResource.java @@ -230,6 +230,9 @@ public ResultList listFromSearch( @QueryParam("includeEmptyTestSuites") @DefaultValue("true") Boolean includeEmptyTestSuites, + @Parameter(description = "Filter a test suite by domain.", schema = @Schema(type = "string")) + @QueryParam("domain") + String domain, @Parameter( description = "Filter a test suite by fully qualified name.", schema = @Schema(type = "string")) @@ -283,6 +286,7 @@ public ResultList listFromSearch( searchListFilter.addQueryParam("includeEmptyTestSuites", includeEmptyTestSuites); searchListFilter.addQueryParam("fullyQualifiedName", fullyQualifiedName); searchListFilter.addQueryParam("excludeFields", SEARCH_FIELDS_EXCLUDE); + searchListFilter.addQueryParam("domain", domain); if (!nullOrEmpty(owner)) { EntityInterface entity; try { diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java index 2d066e1e8653..c708b690f787 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestSuiteResourceTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.openmetadata.service.util.TestUtils.ADMIN_AUTH_HEADERS; import static org.openmetadata.service.util.TestUtils.LONG_ENTITY_NAME; import static org.openmetadata.service.util.TestUtils.assertListNotNull; @@ -274,6 +275,38 @@ void test_inheritOwnerFromTable(TestInfo test) throws IOException { assertOwners(table.getOwners(), testSuite.getOwners()); } + @Test + void test_inheritDomainFromTable(TestInfo test) throws IOException { + TableResourceTest tableResourceTest = new TableResourceTest(); + CreateTable tableReq = + tableResourceTest + .createRequest(test) + .withColumns( + List.of( + new Column() + .withName(C1) + .withDisplayName("c1") + .withDataType(ColumnDataType.VARCHAR) + .withDataLength(10))) + .withDomain(DOMAIN1.getFullyQualifiedName()); + Table table = tableResourceTest.createEntity(tableReq, ADMIN_AUTH_HEADERS); + table = tableResourceTest.getEntity(table.getId(), "*", ADMIN_AUTH_HEADERS); + CreateTestSuite createExecutableTestSuite = createRequest(table.getFullyQualifiedName()); + TestSuite executableTestSuite = + createExecutableTestSuite(createExecutableTestSuite, ADMIN_AUTH_HEADERS); + TestSuite testSuite = getEntity(executableTestSuite.getId(), "domain", ADMIN_AUTH_HEADERS); + assertEquals(DOMAIN1.getId(), testSuite.getDomain().getId()); + ResultList testSuites = + listEntitiesFromSearch( + Map.of("domain", DOMAIN1.getFullyQualifiedName(), "fields", "domain"), + 100, + 0, + ADMIN_AUTH_HEADERS); + assertTrue( + testSuites.getData().stream() + .allMatch(ts -> ts.getDomain().getId().equals(DOMAIN1.getId()))); + } + @Test void post_createLogicalTestSuiteAndAddTests_200(TestInfo test) throws IOException { TestCaseResourceTest testCaseResourceTest = new TestCaseResourceTest();