From 445ec39448534c1076e36b8e655120499d7d0674 Mon Sep 17 00:00:00 2001 From: Connor Lanigan Date: Fri, 21 Feb 2025 15:29:37 +0100 Subject: [PATCH] fix: Table does not instanceIdentifier for the reported task name in metrics --- src/table/__tests__/analytics-events.test.tsx | 33 +++++++++++++++++++ src/table/internal.tsx | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/table/__tests__/analytics-events.test.tsx diff --git a/src/table/__tests__/analytics-events.test.tsx b/src/table/__tests__/analytics-events.test.tsx new file mode 100644 index 0000000000..6ea51afcc6 --- /dev/null +++ b/src/table/__tests__/analytics-events.test.tsx @@ -0,0 +1,33 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +import React from 'react'; +import { render } from '@testing-library/react'; + +import Header from '../../../lib/components/header'; +import { ComponentMetrics, setComponentMetrics } from '../../../lib/components/internal/analytics'; +import Table from '../../../lib/components/table'; + +const componentMounted = jest.fn(); +const componentUpdated = jest.fn(); + +setComponentMetrics({ componentMounted, componentUpdated }); + +describe('Task name', () => { + test('instanceIdentifier overrides the automatically determined task name', () => { + render( + This is the table header} + /> + ); + + expect(ComponentMetrics.componentMounted).toHaveBeenCalledTimes(1); + expect(ComponentMetrics.componentMounted).toHaveBeenCalledWith( + expect.objectContaining({ + componentConfiguration: expect.objectContaining({ taskName: 'My custom task name override' }), + }) + ); + }); +}); diff --git a/src/table/internal.tsx b/src/table/internal.tsx index fec6c238b6..80e4063a65 100644 --- a/src/table/internal.tsx +++ b/src/table/internal.tsx @@ -229,7 +229,7 @@ const InternalTable = React.forwardRef( variant, flowType: rest.analyticsMetadata?.flowType, instanceIdentifier: analyticsMetadata?.instanceIdentifier, - taskName: getHeaderText(), + taskName: analyticsMetadata?.instanceIdentifier ?? getHeaderText(), patternIdentifier: getPatternIdentifier(), sortedBy: { columnId: sortingColumn?.sortingField,