diff --git a/datahub-web-react/src/app/entity/shared/siblingUtils.ts b/datahub-web-react/src/app/entity/shared/siblingUtils.ts index 7a0eb268b5..93c08022f4 100644 --- a/datahub-web-react/src/app/entity/shared/siblingUtils.ts +++ b/datahub-web-react/src/app/entity/shared/siblingUtils.ts @@ -48,7 +48,7 @@ const customMerge = (isPrimary, key) => { if (key === 'platform') { return (a, b) => (isPrimary ? b : a); } - if (key === 'tags' || key === 'terms') { + if (key === 'tags' || key === 'terms' || key === 'assertions') { return (a, b) => { return merge(a, b, { customMerge: customMerge.bind({}, isPrimary), diff --git a/datahub-web-react/src/app/entity/shared/tabs/Dataset/Validations/ValidationsTab.tsx b/datahub-web-react/src/app/entity/shared/tabs/Dataset/Validations/ValidationsTab.tsx index 34bae76dd8..8b747c2a77 100644 --- a/datahub-web-react/src/app/entity/shared/tabs/Dataset/Validations/ValidationsTab.tsx +++ b/datahub-web-react/src/app/entity/shared/tabs/Dataset/Validations/ValidationsTab.tsx @@ -9,6 +9,7 @@ import { DatasetAssertionsList } from './DatasetAssertionsList'; import { DatasetAssertionsSummary } from './DatasetAssertionsSummary'; import { sortAssertions } from './assertionUtils'; import { TestResults } from './TestResults'; +import { combineEntityDataWithSiblings } from '../../../siblingUtils'; /** * Returns a status summary for the assertions associated with a Dataset. @@ -47,28 +48,30 @@ enum ViewType { export const ValidationsTab = () => { const { urn, entityData } = useEntityData(); const { data, refetch } = useGetDatasetAssertionsQuery({ variables: { urn } }); + const combinedData = combineEntityDataWithSiblings(data); const [removedUrns, setRemovedUrns] = useState([]); /** * Determines which view should be visible: assertions or tests. */ const [view, setView] = useState(ViewType.ASSERTIONS); - const assertions = (data && data.dataset?.assertions?.assertions?.map((assertion) => assertion as Assertion)) || []; - const maybeTotalAssertions = data?.dataset?.assertions?.total || undefined; - const effectiveTotalAssertions = maybeTotalAssertions || 0; + const assertions = + (combinedData && combinedData.dataset?.assertions?.assertions?.map((assertion) => assertion as Assertion)) || + []; const filteredAssertions = assertions.filter((assertion) => !removedUrns.includes(assertion.urn)); + const numAssertions = filteredAssertions.length; const passingTests = (entityData as any)?.testResults?.passing || []; const maybeFailingTests = (entityData as any)?.testResults?.failing || []; const totalTests = maybeFailingTests.length + passingTests.length; useEffect(() => { - if (totalTests > 0 && maybeTotalAssertions === 0) { + if (totalTests > 0 && numAssertions === 0) { setView(ViewType.TESTS); } else { setView(ViewType.ASSERTIONS); } - }, [totalTests, maybeTotalAssertions]); + }, [totalTests, numAssertions]); // Pre-sort the list of assertions based on which has been most recently executed. assertions.sort(sortAssertions); @@ -77,13 +80,9 @@ export const ValidationsTab = () => { <>
-