diff --git a/airflow/www/static/js/dag/InstanceTooltip.test.tsx b/airflow/www/static/js/dag/InstanceTooltip.test.tsx
index 8543057e7b2d0..4a8f2b9192ea5 100644
--- a/airflow/www/static/js/dag/InstanceTooltip.test.tsx
+++ b/airflow/www/static/js/dag/InstanceTooltip.test.tsx
@@ -48,6 +48,7 @@ describe('Test Task InstanceTooltip', () => {
expect(getByText('Status: success')).toBeDefined();
expect(queryByText('Contains a note')).toBeNull();
+ expect(getByText('Duration: 00:00:00')).toBeDefined();
});
test('Displays a mapped task with overall status', () => {
@@ -111,4 +112,17 @@ describe('Test Task InstanceTooltip', () => {
expect(getByText('Contains a note')).toBeInTheDocument();
});
+
+ test('Hides duration if there is no start date', () => {
+ const { queryByText, getByText } = render(
+ ,
+ { wrapper: Wrapper },
+ );
+
+ expect(getByText('Status: success')).toBeDefined();
+ expect(queryByText('Duration: 00:00:00')).toBeNull();
+ });
});
diff --git a/airflow/www/static/js/dag/InstanceTooltip.tsx b/airflow/www/static/js/dag/InstanceTooltip.tsx
index a31b712b194b0..a4a2550973e55 100644
--- a/airflow/www/static/js/dag/InstanceTooltip.tsx
+++ b/airflow/www/static/js/dag/InstanceTooltip.tsx
@@ -96,16 +96,20 @@ const InstanceTooltip = ({
{state || 'no status'}
{(isGroup || isMapped) && summary}
-
- Started:
- {' '}
-
-
-
- Duration:
- {' '}
- {formatDuration(getDuration(startDate, endDate))}
-
+ {startDate && (
+ <>
+
+ Started:
+ {' '}
+
+
+
+ Duration:
+ {' '}
+ {formatDuration(getDuration(startDate, endDate))}
+
+ >
+ )}
{note && (
Contains a note
)}
diff --git a/airflow/www/static/js/dag/details/dagRun/index.tsx b/airflow/www/static/js/dag/details/dagRun/index.tsx
index ffbf613da50ae..3f69e693d5bb6 100644
--- a/airflow/www/static/js/dag/details/dagRun/index.tsx
+++ b/airflow/www/static/js/dag/details/dagRun/index.tsx
@@ -144,12 +144,14 @@ const DagRun = ({ runId }: Props) => {
{runType}
-
- Run duration |
-
- {formatDuration(getDuration(startDate, endDate))}
- |
-
+ {startDate && (
+
+ Run duration |
+
+ {formatDuration(getDuration(startDate, endDate))}
+ |
+
+ )}
{lastSchedulingDecision && (
Last scheduling decision |
diff --git a/airflow/www/static/js/dag/details/taskInstance/Details.tsx b/airflow/www/static/js/dag/details/taskInstance/Details.tsx
index 6deb24617feaa..2baefa5d69f65 100644
--- a/airflow/www/static/js/dag/details/taskInstance/Details.tsx
+++ b/airflow/www/static/js/dag/details/taskInstance/Details.tsx
@@ -200,13 +200,15 @@ const Details = ({ instance, group, dagId }: Props) => {
{operator} |
)}
-
-
- {isOverall}
- Duration
- |
- {formatDuration(getDuration(startDate, endDate))} |
-
+ {startDate && (
+
+
+ {isOverall}
+ Duration
+ |
+ {formatDuration(getDuration(startDate, endDate))} |
+
+ )}
{startDate && (
Started |
diff --git a/airflow/www/yarn.lock b/airflow/www/yarn.lock
index a30b381fe4945..5431b00d520d5 100644
--- a/airflow/www/yarn.lock
+++ b/airflow/www/yarn.lock
@@ -3947,20 +3947,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109:
- version "1.0.30001355"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001355.tgz#e240b7177443ed0198c737a7f609536976701c77"
- integrity sha512-Sd6pjJHF27LzCB7pT7qs+kuX2ndurzCzkpJl6Qct7LPSZ9jn0bkOA8mdgMgmqnQAWLVOOGjLpc+66V57eLtb1g==
-
-caniuse-lite@^1.0.30001219:
- version "1.0.30001312"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz"
- integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==
-
-caniuse-lite@^1.0.30001349:
- version "1.0.30001354"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001354.tgz#95c5efdb64148bb4870771749b9a619304755ce5"
- integrity sha512-mImKeCkyGDAHNywYFA4bqnLAzTUvVkqPvhY4DV47X+Gl2c5Z8c3KNETnXp14GQt11LvxE8AwjzGxJ+rsikiOzg==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001349:
+ version "1.0.30001439"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz"
+ integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==
chakra-react-select@^4.0.0:
version "4.0.3"