Skip to content

test(analytics-controller): add messenger action regression tests for setMarketingCampaignCookieId - #10398

Merged
gauthierpetetin merged 1 commit into
mainfrom
gauthierpetetin/analytics-controller-messenger-regression-tests
Sep 23, 2026
Merged

gauthierpetetin merged 1 commit into
mainfrom
gauthierpetetin/analytics-controller-messenger-regression-tests

Conversation

@gauthierpetetin

@gauthierpetetin gauthierpetetin commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Description

Follow-up to #10373, addressing the Copilot review comment asking for messenger action regression tests for setMarketingCampaignCookieId, including the null case.

The tests added in #10373 call the controller method directly, which would keep passing if the method were removed from MESSENGER_EXPOSED_METHODS or the action type union drifted. This adds two tests in the setMarketingCampaignCookieId describe block that invoke AnalyticsController:setMarketingCampaignCookieId through the messenger:

  • with a value → state is updated
  • with null → marketingCampaignCookieId is cleared

Verification

  • Full @metamask/analytics-controller test suite passes (100% coverage maintained)
  • Regression value confirmed: temporarily removing the action from MESSENGER_EXPOSED_METHODS fails exactly these two tests while the direct-call tests still pass
  • yarn lint:eslint passes

Checklist

  • Tests pass
  • Lint passes
  • No changelog entry needed (test-only change)

Note

Low Risk
Test-only change with no production code or runtime behavior modifications.

Overview
Adds two regression tests in the setMarketingCampaignCookieId suite that exercise the AnalyticsController:setMarketingCampaignCookieId messenger action instead of calling the controller method directly.

One test asserts that invoking the action with a GA cookie ID updates marketingCampaignCookieId in state; the other asserts that passing null clears it. Together they guard against the action being dropped from MESSENGER_EXPOSED_METHODS or action-type drift while direct-call tests would still pass.

Reviewed by Cursor Bugbot for commit be4d68b. Bugbot is set up for automated code reviews on this repo. Configure here.

… setMarketingCampaignCookieId

Invokes the AnalyticsController:setMarketingCampaignCookieId messenger
action directly (with a value and with null) so that regressions in the
messenger wiring are caught even if the controller method is still
callable. Follow-up to #10373.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@gauthierpetetin

Copy link
Copy Markdown
Contributor Author

@metamaskbot publish-preview

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

No unresolved issues were identified, and the changes are test-only.

Review effort: Lite
Findings: None

What changed in this PR

Adds messenger-level regression tests for setMarketingCampaignCookieId, covering both setting and clearing the cookie ID.

Changes:

  • Tests the action through messenger.call.
  • Verifies state updates with a value and clears with null.
File Description
packages/​analytics-controller/​src/​AnalyticsController.test.ts Adds two messenger action regression tests.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

Copy link
Copy Markdown
Contributor

Preview builds have been published. Learn how to use preview builds in other projects.

Expand for full list of packages and versions.
@metamask-previews/account-tree-controller@10.0.1-preview-be4d68b
@metamask-previews/accounts-controller@40.0.0-preview-be4d68b
@metamask-previews/address-book-controller@8.0.0-preview-be4d68b
@metamask-previews/ai-controllers@2.0.0-preview-be4d68b
@metamask-previews/analytics-controller@3.1.0-preview-be4d68b
@metamask-previews/analytics-data-regulation-controller@0.0.0-preview-be4d68b
@metamask-previews/announcement-controller@9.0.0-preview-be4d68b
@metamask-previews/app-metadata-controller@3.0.0-preview-be4d68b
@metamask-previews/approval-controller@10.0.0-preview-be4d68b
@metamask-previews/assets-controller@16.1.0-preview-be4d68b
@metamask-previews/assets-controllers@112.0.2-preview-be4d68b
@metamask-previews/authenticated-user-storage@4.0.0-preview-be4d68b
@metamask-previews/base-controller@10.0.0-preview-be4d68b
@metamask-previews/base-data-service@2.0.0-preview-be4d68b
@metamask-previews/bitcoin-regtest-up@2.0.0-preview-be4d68b
@metamask-previews/bridge-controller@81.3.0-preview-be4d68b
@metamask-previews/bridge-status-controller@76.3.0-preview-be4d68b
@metamask-previews/build-utils@4.0.0-preview-be4d68b
@metamask-previews/chain-agnostic-permission@2.0.0-preview-be4d68b
@metamask-previews/chomp-api-service@5.0.0-preview-be4d68b
@metamask-previews/claims-controller@1.0.1-preview-be4d68b
@metamask-previews/client-controller@2.0.0-preview-be4d68b
@metamask-previews/client-utils@3.0.2-preview-be4d68b
@metamask-previews/compliance-controller@3.0.0-preview-be4d68b
@metamask-previews/composable-controller@13.0.0-preview-be4d68b
@metamask-previews/config-registry-controller@4.0.0-preview-be4d68b
@metamask-previews/connectivity-controller@1.0.0-preview-be4d68b
@metamask-previews/controller-utils@13.0.0-preview-be4d68b
@metamask-previews/core-backend@11.0.0-preview-be4d68b
@metamask-previews/cryptography@0.0.0-preview-be4d68b
@metamask-previews/delegation-controller@4.0.0-preview-be4d68b
@metamask-previews/earn-controller@13.0.0-preview-be4d68b
@metamask-previews/eip-5792-middleware@4.0.0-preview-be4d68b
@metamask-previews/eip-7702-internal-rpc-middleware@1.0.0-preview-be4d68b
@metamask-previews/eip1193-permission-middleware@3.0.0-preview-be4d68b
@metamask-previews/eth-block-tracker@16.0.0-preview-be4d68b
@metamask-previews/eth-json-rpc-middleware@25.0.0-preview-be4d68b
@metamask-previews/eth-json-rpc-provider@7.0.0-preview-be4d68b
@metamask-previews/foundryup@2.0.0-preview-be4d68b
@metamask-previews/gas-fee-controller@27.0.0-preview-be4d68b
@metamask-previews/gator-permissions-controller@6.0.0-preview-be4d68b
@metamask-previews/geolocation-controller@2.0.0-preview-be4d68b
@metamask-previews/java-tron-up@2.0.0-preview-be4d68b
@metamask-previews/json-rpc-engine@11.0.0-preview-be4d68b
@metamask-previews/json-rpc-middleware-stream@9.0.0-preview-be4d68b
@metamask-previews/keyring-controller@28.0.0-preview-be4d68b
@metamask-previews/kyc-controller@0.4.0-preview-be4d68b
@metamask-previews/local-node-utils@2.0.0-preview-be4d68b
@metamask-previews/logging-controller@10.0.0-preview-be4d68b
@metamask-previews/message-manager@15.0.0-preview-be4d68b
@metamask-previews/messenger@3.0.0-preview-be4d68b
@metamask-previews/messenger-cli@1.0.0-preview-be4d68b
@metamask-previews/money-account-api-data-service@1.0.0-preview-be4d68b
@metamask-previews/money-account-balance-service@3.0.0-preview-be4d68b
@metamask-previews/money-account-controller@2.0.0-preview-be4d68b
@metamask-previews/money-account-upgrade-controller@5.0.0-preview-be4d68b
@metamask-previews/money-account-utils@2.0.0-preview-be4d68b
@metamask-previews/multichain-account-service@14.0.0-preview-be4d68b
@metamask-previews/multichain-api-middleware@5.0.0-preview-be4d68b
@metamask-previews/multichain-network-controller@4.0.0-preview-be4d68b
@metamask-previews/multichain-transactions-controller@8.0.0-preview-be4d68b
@metamask-previews/name-controller@10.0.0-preview-be4d68b
@metamask-previews/network-connection-banner-controller@1.0.0-preview-be4d68b
@metamask-previews/network-controller@37.0.0-preview-be4d68b
@metamask-previews/network-enablement-controller@7.0.0-preview-be4d68b
@metamask-previews/notification-services-controller@29.0.0-preview-be4d68b
@metamask-previews/passkey-controller@4.1.0-preview-be4d68b
@metamask-previews/permission-controller@14.0.0-preview-be4d68b
@metamask-previews/permission-log-controller@6.0.0-preview-be4d68b
@metamask-previews/perps-controller@17.4.0-preview-be4d68b
@metamask-previews/phishing-controller@18.1.0-preview-be4d68b
@metamask-previews/platform-api-docs@0.2.1-preview-be4d68b
@metamask-previews/polling-controller@17.0.0-preview-be4d68b
@metamask-previews/preferences-controller@24.0.0-preview-be4d68b
@metamask-previews/profile-metrics-controller@5.1.0-preview-be4d68b
@metamask-previews/profile-sync-controller@32.2.0-preview-be4d68b
@metamask-previews/ramps-controller@25.0.0-preview-be4d68b
@metamask-previews/rate-limit-controller@8.0.0-preview-be4d68b
@metamask-previews/react-data-query@2.0.0-preview-be4d68b
@metamask-previews/remote-feature-flag-controller@7.0.0-preview-be4d68b
@metamask-previews/sample-controllers@6.0.0-preview-be4d68b
@metamask-previews/seedless-onboarding-controller@11.0.0-preview-be4d68b
@metamask-previews/selected-network-controller@27.0.0-preview-be4d68b
@metamask-previews/sentinel-api-service@2.0.0-preview-be4d68b
@metamask-previews/shield-controller@7.0.1-preview-be4d68b
@metamask-previews/signature-controller@40.0.0-preview-be4d68b
@metamask-previews/smart-transactions-controller@27.0.1-preview-be4d68b
@metamask-previews/snap-account-service@3.0.0-preview-be4d68b
@metamask-previews/social-controllers@3.0.2-preview-be4d68b
@metamask-previews/solana-test-validator-up@2.0.0-preview-be4d68b
@metamask-previews/stellar-quickstart-up@0.0.0-preview-be4d68b
@metamask-previews/storage-service@2.0.0-preview-be4d68b
@metamask-previews/subscription-controller@9.1.0-preview-be4d68b
@metamask-previews/transaction-controller@71.0.0-preview-be4d68b
@metamask-previews/transaction-pay-controller@29.1.1-preview-be4d68b
@metamask-previews/user-operation-controller@42.0.0-preview-be4d68b
@metamask-previews/utils@12.0.0-preview-be4d68b
@metamask-previews/wallet@14.0.1-preview-be4d68b
@metamask-previews/wallet-cli@0.0.0-preview-be4d68b

@gauthierpetetin
gauthierpetetin added this pull request to the merge queue Sep 23, 2026
Merged via the queue into main with commit c7b0b08 Sep 23, 2026
162 checks passed
@gauthierpetetin
gauthierpetetin deleted the gauthierpetetin/analytics-controller-messenger-regression-tests branch September 23, 2026 13:07
pull Bot pushed a commit to Reality2byte/core that referenced this pull request Sep 23, 2026
## Explanation

Publish `@metamask/analytics-controller@3.2.0` so clients can consume
the additive changes that have accumulated on `main` since 3.1.0,
including the new `marketingCampaignCookieId` state field and
`setMarketingCampaignCookieId` messenger action
([MetaMask#10373](MetaMask#10373)).

Minor bump: the release only adds new, optional API surface — a new
state field initialized to `null` and a new messenger action — so it is
not breaking. The field is automatically cleared when the user opts out
of marketing or resets their marketing consent decision.

## References

- Add `marketingCampaignCookieId` state field and
`setMarketingCampaignCookieId` action to `AnalyticsController`:
MetaMask#10373
- Add messenger action regression tests for
`setMarketingCampaignCookieId`:
MetaMask#10398

## Checklist

- [x] I've updated the test suite for new or updated code as appropriate
- [x] I've updated documentation (JSDoc, Markdown, etc.) for new or
updated code as appropriate
- [x] I've communicated my changes to consumers by [updating changelogs
for packages I've
changed](https://github.com/MetaMask/core/tree/main/docs/processes/updating-changelogs.md)
- [ ] I've introduced [breaking
changes](https://github.com/MetaMask/core/tree/main/docs/processes/breaking-changes.md)
in this PR and have prepared draft pull requests for clients and
consumer packages to resolve them

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Release-only version and changelog updates with a minor,
backward-compatible analytics API bump; no runtime logic changes in this
PR.
> 
> **Overview**
> Cuts **monorepo release 1281.0.0** by publishing
**`@metamask/analytics-controller@3.2.0`** and wiring dependents to it.
> 
> The analytics-controller changelog documents **3.2.0** as additive
API: a **`marketingCampaignCookieId`** state field (default **`null`**)
and **`setMarketingCampaignCookieId`**, with the ID cleared on
**`optOutOfMarketing`** or **`resetMarketingConsentDecision`**.
**`network-controller`** and **`wallet-cli`** bump
**`@metamask/analytics-controller`** to **`^3.2.0`**; **`yarn.lock`**
and package version fields are updated accordingly. No application
source changes appear in this diff—only release metadata and dependency
pins.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
9e777df. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
default-branch — be4d68b3 Deployed Sep 23, 2026 by gauthierpetetin via Determine whether this PR is a release PR #4485
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants