diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.test.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.test.tsx
index d60ff48f84d..c47bf70249b 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.test.tsx
@@ -305,6 +305,54 @@ describe('TestDetailsPageV1 component', () => {
expect(screen.queryByText('label.view-definition')).not.toBeInTheDocument();
});
+ it('TableDetailsPageV1 should dbt tab for rawSql, when sql is empty', async () => {
+ (usePermissionProvider as jest.Mock).mockImplementationOnce(() => ({
+ getEntityPermissionByFqn: jest.fn().mockImplementationOnce(() => ({
+ ViewBasic: true,
+ })),
+ }));
+
+ (getTableDetailsByFQN as jest.Mock).mockImplementationOnce(() =>
+ Promise.resolve({
+ name: 'test',
+ id: '123',
+ tableFqn: 'fqn',
+ dataModel: { sql: '', rawSql: 'rawSql' },
+ })
+ );
+
+ await act(async () => {
+ render();
+ });
+
+ expect(await screen.findByText('label.dbt-lowercase')).toBeInTheDocument();
+ expect(screen.queryByText('label.view-definition')).not.toBeInTheDocument();
+ });
+
+ it('TableDetailsPageV1 should dbt tab for rawSql, when there is no sql available', async () => {
+ (usePermissionProvider as jest.Mock).mockImplementationOnce(() => ({
+ getEntityPermissionByFqn: jest.fn().mockImplementationOnce(() => ({
+ ViewBasic: true,
+ })),
+ }));
+
+ (getTableDetailsByFQN as jest.Mock).mockImplementationOnce(() =>
+ Promise.resolve({
+ name: 'test',
+ id: '123',
+ tableFqn: 'fqn',
+ dataModel: { rawSql: 'rawSql' },
+ })
+ );
+
+ await act(async () => {
+ render();
+ });
+
+ expect(await screen.findByText('label.dbt-lowercase')).toBeInTheDocument();
+ expect(screen.queryByText('label.view-definition')).not.toBeInTheDocument();
+ });
+
it('TableDetailsPageV1 should render schema definition tab table type is not view', async () => {
(usePermissionProvider as jest.Mock).mockImplementationOnce(() => ({
getEntityPermissionByFqn: jest.fn().mockImplementationOnce(() => ({
@@ -325,6 +373,7 @@ describe('TestDetailsPageV1 component', () => {
});
expect(screen.getByText('label.schema-definition')).toBeInTheDocument();
+ expect(screen.queryByText('label.dbt-lowercase')).not.toBeInTheDocument();
});
it('TableDetailsPageV1 should render view definition tab if table type is view', async () => {
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.tsx
index 9079b37ef35..0b044fa6e7b 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/TableDetailsPageV1/TableDetailsPageV1.tsx
@@ -14,7 +14,7 @@ import { Col, Row, Space, Tabs, Typography } from 'antd';
import { AxiosError } from 'axios';
import classNames from 'classnames';
import { compare } from 'fast-json-patch';
-import { isEmpty, isEqual, isUndefined } from 'lodash';
+import { get, isEmpty, isEqual, isUndefined } from 'lodash';
import { EntityTags } from 'Models';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
@@ -733,15 +733,14 @@ const TableDetailsPageV1: React.FC = () => {
),
isHidden: !(
- tableDetails?.dataModel?.sql ?? tableDetails?.dataModel?.rawSql
+ tableDetails?.dataModel?.sql || tableDetails?.dataModel?.rawSql
),
key: EntityTabs.DBT,
children: (