From 5e588d15404f63945c653fc03bf6f6e041e97717 Mon Sep 17 00:00:00 2001 From: Brian Cooper Date: Wed, 21 Feb 2024 17:08:00 -0500 Subject: [PATCH] Revert "refactor(app): refactor protocol event analytics hooks (#14476)" This reverts commit 86c138b851a7d5b0329f82633fc2f85c04001ef2. --- .../__tests__/useProtocolRunAnalyticsData.test.tsx | 8 ++++---- .../__tests__/useTrackProtocolRunEvent.test.tsx | 9 ++------- .../Devices/hooks/useProtocolRunAnalyticsData.ts | 14 +++++++++----- .../hooks/useTrackCreateProtocolRunEvent.ts | 5 +---- .../Devices/hooks/useTrackProtocolRunEvent.ts | 4 +--- 5 files changed, 17 insertions(+), 23 deletions(-) diff --git a/app/src/organisms/Devices/hooks/__tests__/useProtocolRunAnalyticsData.test.tsx b/app/src/organisms/Devices/hooks/__tests__/useProtocolRunAnalyticsData.test.tsx index 709f51f9c0d..554a1952c66 100644 --- a/app/src/organisms/Devices/hooks/__tests__/useProtocolRunAnalyticsData.test.tsx +++ b/app/src/organisms/Devices/hooks/__tests__/useProtocolRunAnalyticsData.test.tsx @@ -12,7 +12,6 @@ import { useStoredProtocolAnalysis, useProtocolDetailsForRun } from '../' import { useProtocolMetadata } from '../useProtocolMetadata' import { useRunTimestamps } from '../../../RunTimeControl/hooks' import { formatInterval } from '../../../RunTimeControl/utils' -import { mockConnectableRobot } from '../../../../redux/discovery/__fixtures__' jest.mock('../../../../redux/analytics/hash') jest.mock('../../../../redux/protocol-storage') @@ -46,6 +45,7 @@ let store: Store = createStore(jest.fn(), {}) const RUN_ID = '1' const RUN_ID_2 = '2' +const ROBOT_NAME = 'otie' const PIPETTES = [ { id: '1', pipetteName: 'testModelLeft' }, @@ -113,7 +113,7 @@ describe('useProtocolAnalysisErrors hook', () => { it('returns getProtocolRunAnalyticsData function', () => { const { result } = renderHook( - () => useProtocolRunAnalyticsData(RUN_ID, mockConnectableRobot), + () => useProtocolRunAnalyticsData(RUN_ID, ROBOT_NAME), { wrapper, } @@ -128,7 +128,7 @@ describe('useProtocolAnalysisErrors hook', () => { .calledWith(RUN_ID_2) .mockReturnValue({ protocolData: ROBOT_PROTOCOL_ANALYSIS } as any) const { result } = renderHook( - () => useProtocolRunAnalyticsData(RUN_ID_2, mockConnectableRobot), + () => useProtocolRunAnalyticsData(RUN_ID_2, ROBOT_NAME), { wrapper, } @@ -157,7 +157,7 @@ describe('useProtocolAnalysisErrors hook', () => { it('getProtocolRunAnalyticsData returns fallback stored data when robot data unavailable', async () => { const { result } = renderHook( - () => useProtocolRunAnalyticsData(RUN_ID, mockConnectableRobot), + () => useProtocolRunAnalyticsData(RUN_ID, ROBOT_NAME), { wrapper, } diff --git a/app/src/organisms/Devices/hooks/__tests__/useTrackProtocolRunEvent.test.tsx b/app/src/organisms/Devices/hooks/__tests__/useTrackProtocolRunEvent.test.tsx index 5585e923569..3adff13e65c 100644 --- a/app/src/organisms/Devices/hooks/__tests__/useTrackProtocolRunEvent.test.tsx +++ b/app/src/organisms/Devices/hooks/__tests__/useTrackProtocolRunEvent.test.tsx @@ -11,8 +11,6 @@ import { useTrackEvent, ANALYTICS_PROTOCOL_RUN_START, } from '../../../../redux/analytics' -import { mockConnectableRobot } from '../../../../redux/discovery/__fixtures__' -import { useRobot } from '../useRobot' jest.mock('../../hooks') jest.mock('../useProtocolRunAnalyticsData') @@ -20,12 +18,10 @@ jest.mock('../../../../redux/discovery') jest.mock('../../../../redux/pipettes') jest.mock('../../../../redux/analytics') jest.mock('../../../../redux/robot-settings') -jest.mock('../useRobot') const mockUseTrackEvent = useTrackEvent as jest.MockedFunction< typeof useTrackEvent > -const mockUseRobot = useRobot as jest.MockedFunction const mockUseProtocolRunAnalyticsData = useProtocolRunAnalyticsData as jest.MockedFunction< typeof useProtocolRunAnalyticsData > @@ -59,9 +55,8 @@ describe('useTrackProtocolRunEvent hook', () => { ) ) mockUseTrackEvent.mockReturnValue(mockTrackEvent) - mockUseRobot.mockReturnValue(mockConnectableRobot) when(mockUseProtocolRunAnalyticsData) - .calledWith(RUN_ID, mockConnectableRobot) + .calledWith(RUN_ID, ROBOT_NAME) .mockReturnValue({ getProtocolRunAnalyticsData: mockGetProtocolRunAnalyticsData, }) @@ -103,7 +98,7 @@ describe('useTrackProtocolRunEvent hook', () => { it('trackProtocolRunEvent calls trackEvent without props when error is thrown in getProtocolRunAnalyticsData', async () => { when(mockUseProtocolRunAnalyticsData) - .calledWith('errorId', mockConnectableRobot) + .calledWith('errorId', ROBOT_NAME) .mockReturnValue({ getProtocolRunAnalyticsData: () => new Promise(() => { diff --git a/app/src/organisms/Devices/hooks/useProtocolRunAnalyticsData.ts b/app/src/organisms/Devices/hooks/useProtocolRunAnalyticsData.ts index 93dde4bfefa..a6b83a93088 100644 --- a/app/src/organisms/Devices/hooks/useProtocolRunAnalyticsData.ts +++ b/app/src/organisms/Devices/hooks/useProtocolRunAnalyticsData.ts @@ -3,7 +3,11 @@ import { useSelector } from 'react-redux' import { hash } from '../../../redux/analytics/hash' import { getStoredProtocol } from '../../../redux/protocol-storage' import { getRobotSerialNumber } from '../../../redux/discovery' -import { useStoredProtocolAnalysis, useProtocolDetailsForRun } from './' +import { + useRobot, + useStoredProtocolAnalysis, + useProtocolDetailsForRun, +} from './' import { useProtocolMetadata } from './useProtocolMetadata' import { useRunTimestamps } from '../../RunTimeControl/hooks' import { formatInterval } from '../../RunTimeControl/utils' @@ -13,19 +17,19 @@ import type { ProtocolAnalyticsData } from '../../../redux/analytics/types' import type { StoredProtocolData } from '../../../redux/protocol-storage/types' import type { ProtocolAnalysisOutput } from '@opentrons/shared-data' import type { State } from '../../../redux/types' -import { DiscoveredRobot } from '../../../redux/discovery/types' export const parseProtocolRunAnalyticsData = ( protocolAnalysis: ProtocolAnalysisOutput | null, storedProtocol: StoredProtocolData | null, startedAt: string | null, - robot: DiscoveredRobot | null + robotName: string ) => () => { const hashTasks = [ hash(protocolAnalysis?.metadata?.author) ?? '', hash(storedProtocol?.srcFiles?.toString() ?? '') ?? '', ] + const robot = useRobot(robotName) const serialNumber = robot?.status != null ? getRobotSerialNumber(robot) : null @@ -76,7 +80,7 @@ type GetProtocolRunAnalyticsData = () => Promise<{ */ export function useProtocolRunAnalyticsData( runId: string | null, - robot: DiscoveredRobot | null + robotName: string ): { getProtocolRunAnalyticsData: GetProtocolRunAnalyticsData } { @@ -105,7 +109,7 @@ export function useProtocolRunAnalyticsData( protocolAnalysis as ProtocolAnalysisOutput | null, storedProtocol, startedAt, - robot + robotName ) return { getProtocolRunAnalyticsData } diff --git a/app/src/organisms/Devices/hooks/useTrackCreateProtocolRunEvent.ts b/app/src/organisms/Devices/hooks/useTrackCreateProtocolRunEvent.ts index d34da539c8d..400f93fac40 100644 --- a/app/src/organisms/Devices/hooks/useTrackCreateProtocolRunEvent.ts +++ b/app/src/organisms/Devices/hooks/useTrackCreateProtocolRunEvent.ts @@ -3,7 +3,6 @@ import { parseProtocolRunAnalyticsData } from './useProtocolRunAnalyticsData' import { parseProtocolAnalysisOutput } from './useStoredProtocolAnalysis' import type { StoredProtocolData } from '../../../redux/protocol-storage' -import { useRobot } from './useRobot' type CreateProtocolRunEventName = | 'createProtocolRecordRequest' @@ -24,8 +23,6 @@ export function useTrackCreateProtocolRunEvent( ): { trackCreateProtocolRunEvent: TrackCreateProtocolRunEvent } { const trackEvent = useTrackEvent() - const robot = useRobot(robotName) - const storedProtocolAnalysis = parseProtocolAnalysisOutput( protocol?.mostRecentAnalysis ?? null ) @@ -34,7 +31,7 @@ export function useTrackCreateProtocolRunEvent( storedProtocolAnalysis, protocol, null, - robot + robotName ) const trackCreateProtocolRunEvent: TrackCreateProtocolRunEvent = ({ diff --git a/app/src/organisms/Devices/hooks/useTrackProtocolRunEvent.ts b/app/src/organisms/Devices/hooks/useTrackProtocolRunEvent.ts index 02395c371f2..7cc354805b2 100644 --- a/app/src/organisms/Devices/hooks/useTrackProtocolRunEvent.ts +++ b/app/src/organisms/Devices/hooks/useTrackProtocolRunEvent.ts @@ -1,6 +1,5 @@ import { useTrackEvent } from '../../../redux/analytics' import { useProtocolRunAnalyticsData } from './useProtocolRunAnalyticsData' -import { useRobot } from './useRobot' interface ProtocolRunAnalyticsEvent { name: string @@ -16,10 +15,9 @@ export function useTrackProtocolRunEvent( robotName: string ): { trackProtocolRunEvent: TrackProtocolRunEvent } { const trackEvent = useTrackEvent() - const robot = useRobot(robotName) const { getProtocolRunAnalyticsData } = useProtocolRunAnalyticsData( runId, - robot + robotName ) const trackProtocolRunEvent: TrackProtocolRunEvent = ({