From 803a85dce98b7ccf1a5429ec73cea1927dbfdef6 Mon Sep 17 00:00:00 2001 From: Charly Chevalier Date: Wed, 27 Nov 2024 16:34:40 +0100 Subject: [PATCH] fix(wallet-overview): prevent send button clicked event to be sent twice (#28772) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## **Description** [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/MetaMask/metamask-extension/pull/28772?quickstart=1) ## **Related issues** Fixes: - https://github.com/MetaMask/metamask-extension/pull/28593/files#r1860667737 ## **Manual testing steps** N/A (being covered by unit tests) ## **Screenshots/Recordings** ### **Before** ### **After** ## **Pre-merge author checklist** - [x] I've followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Extension Coding Standards](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-extension/blob/develop/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. --- ui/components/app/wallet-overview/coin-buttons.tsx | 13 ------------- .../app/wallet-overview/eth-overview.test.js | 2 ++ .../app/wallet-overview/non-evm-overview.test.tsx | 2 ++ 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/ui/components/app/wallet-overview/coin-buttons.tsx b/ui/components/app/wallet-overview/coin-buttons.tsx index c3708eaef344..a19811cd710e 100644 --- a/ui/components/app/wallet-overview/coin-buttons.tsx +++ b/ui/components/app/wallet-overview/coin-buttons.tsx @@ -375,19 +375,6 @@ const CoinButtons = ({ } ///: END:ONLY_INCLUDE_IF default: { - trackEvent( - { - event: MetaMetricsEventName.NavSendButtonClicked, - category: MetaMetricsEventCategory.Navigation, - properties: { - token_symbol: 'ETH', - location: 'Home', - text: 'Send', - chain_id: chainId, - }, - }, - { excludeMetaMetricsId: false }, - ); await setCorrectChain(); await dispatch(startNewDraftTransaction({ type: AssetType.native })); history.push(SEND_ROUTE); diff --git a/ui/components/app/wallet-overview/eth-overview.test.js b/ui/components/app/wallet-overview/eth-overview.test.js index 5af6990d4499..104764251cf8 100644 --- a/ui/components/app/wallet-overview/eth-overview.test.js +++ b/ui/components/app/wallet-overview/eth-overview.test.js @@ -445,6 +445,7 @@ describe('EthOverview', () => { expect(buyButton).not.toBeDisabled(); fireEvent.click(buyButton); + expect(mockTrackEvent).toHaveBeenCalledTimes(1); expect(mockTrackEvent).toHaveBeenCalledWith({ event: MetaMetricsEventName.NavBuyButtonClicked, category: MetaMetricsEventCategory.Navigation, @@ -539,6 +540,7 @@ describe('EthOverview', () => { expect(sendButton).not.toBeDisabled(); fireEvent.click(sendButton); + expect(mockTrackEvent).toHaveBeenCalledTimes(1); expect(mockTrackEvent).toHaveBeenCalledWith( { event: MetaMetricsEventName.NavSendButtonClicked, diff --git a/ui/components/app/wallet-overview/non-evm-overview.test.tsx b/ui/components/app/wallet-overview/non-evm-overview.test.tsx index aa49eb77e79d..cfffb9bdc7ce 100644 --- a/ui/components/app/wallet-overview/non-evm-overview.test.tsx +++ b/ui/components/app/wallet-overview/non-evm-overview.test.tsx @@ -305,6 +305,7 @@ describe('NonEvmOverview', () => { expect(buyButton).not.toBeDisabled(); fireEvent.click(buyButton as HTMLElement); + expect(mockTrackEvent).toHaveBeenCalledTimes(1); expect(mockTrackEvent).toHaveBeenCalledWith({ event: MetaMetricsEventName.NavBuyButtonClicked, category: MetaMetricsEventCategory.Navigation, @@ -381,6 +382,7 @@ describe('NonEvmOverview', () => { expect(sendButton).not.toBeDisabled(); fireEvent.click(sendButton as HTMLElement); + expect(mockTrackEvent).toHaveBeenCalledTimes(1); expect(mockTrackEvent).toHaveBeenCalledWith( { event: MetaMetricsEventName.NavSendButtonClicked,