Skip to content

Conversation

@chrisleewilcox
Copy link
Contributor

@chrisleewilcox chrisleewilcox commented Jul 10, 2025

Description

This PR fixes synchronization issues in AES encryption end-to-end tests and improves test infrastructure by adding proper selectors and reorganizing test categorization.

Changelog

CHANGELOG entry:

Related issues

Fixes:

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

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.

…e SmokeAccounts tag

- Commented out several existing workflows in the Bitrise configuration for the e2e testing stages.
- Added new workflows for `run_tag_smoke_accounts_ios` and `run_tag_smoke_accounts_android`.
- Updated AES encryption test files to replace `SmokeNetworkExpansion` with `SmokeAccounts` for better categorization of tests.
@github-actions
Copy link
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbot metamaskbot added the team-qa QA team label Jul 10, 2025
@chrisleewilcox chrisleewilcox added No QA Needed Apply this label when your PR does not need any QA effort. Run Smoke E2E labels Jul 10, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Jul 10, 2025

https://bitrise.io/ Bitrise

✅✅✅ pr_smoke_e2e_pipeline passed on Bitrise! ✅✅✅

Commit hash: 8c16ac4
Build link: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/3463df68-ee5e-48d2-9e5a-ae2f7ab58813

Note

  • You can kick off another pr_smoke_e2e_pipeline on Bitrise by removing and re-applying the Run Smoke E2E label on the pull request

- Commented out the visibility check for the response text in the AES encryption test to streamline the test flow.
- Replaced instances of SmokeNetworkExpansion with SmokeAccounts in error boundary, import wallet, and reveal secret recovery phrase test files for improved test categorization.
@github-actions
Copy link
Contributor

github-actions bot commented Jul 10, 2025

https://bitrise.io/ Bitrise

✅✅✅ pr_smoke_e2e_pipeline passed on Bitrise! ✅✅✅

Commit hash: 5c391f6
Build link: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/482d25b0-6652-4e26-b0d3-8616ec023716

Note

  • You can kick off another pr_smoke_e2e_pipeline on Bitrise by removing and re-applying the Run Smoke E2E label on the pull request

- Restored previously commented-out workflows in the Bitrise configuration for various e2e testing stages, enhancing the testing coverage for both iOS and Android platforms.
@chrisleewilcox chrisleewilcox marked this pull request as ready for review July 10, 2025 02:14
@chrisleewilcox chrisleewilcox requested a review from a team July 10, 2025 02:14
@github-actions
Copy link
Contributor

github-actions bot commented Jul 10, 2025

https://bitrise.io/ Bitrise

✅✅✅ pr_smoke_e2e_pipeline passed on Bitrise! ✅✅✅

Commit hash: d000d99
Build link: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/fe3a1485-94c9-4af1-ad6e-116d39774286

Note

  • You can kick off another pr_smoke_e2e_pipeline on Bitrise by removing and re-applying the Run Smoke E2E label on the pull request

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Bug: Duplicate Test IDs in Form Components

Multiple TestForm components are assigned the same responseTextTestId (responseText, which resolves to 'response-text'). This creates non-unique test IDs for response text elements on the same screen, violating test automation best practices and hindering reliable element targeting in automated tests.

app/components/Views/AesCryptoTestForm/AesCryptoTestForm.tsx#L169-L260

responseTestId={aesCryptoFormResponses.saltResponse}
responseTextTestId={responseText}
styles={{ ...styles }}
/>
<TestForm
title={strings('aes_crypto_test_form.generate_encryption_key')}
buttonLabel={strings('aes_crypto_test_form.generate')}
textFields={[
{
placeholder: strings('aes_crypto_test_form.password'),
testId: aesCryptoFormInputs.passwordInput,
},
{
placeholder: strings('aes_crypto_test_form.salt'),
testId: aesCryptoFormInputs.saltInputForEncryptionKey,
},
]}
callback={generateEncryptionKey}
callbackTestId={aesCryptoFormButtons.generateEncryptionKeyButton}
responseTestId={aesCryptoFormResponses.generateEncryptionKeyResponse}
responseTextTestId={responseText}
styles={{ ...styles }}
/>
<TestForm
title={strings('aes_crypto_test_form.encrypt_with_key')}
buttonLabel={strings('aes_crypto_test_form.encrypt')}
textFields={[
{
placeholder: strings('aes_crypto_test_form.encryption_key'),
testId:
aesCryptoFormInputs.encryptionKeyInputForEncryptionWithKey,
},
{
placeholder: strings('aes_crypto_test_form.data'),
testId: aesCryptoFormInputs.dataInputForEncryptionWithKey,
},
]}
callback={encryptWithKey}
callbackTestId={aesCryptoFormButtons.encryptWithKeyButton}
responseTestId={aesCryptoFormResponses.encryptionWithKeyResponse}
responseTextTestId={responseText}
styles={{ ...styles }}
/>
<TestForm
title={strings('aes_crypto_test_form.decrypt_with_key')}
buttonLabel={strings('aes_crypto_test_form.decrypt')}
textFields={[
{
placeholder: 'Encryption Key',
testId:
aesCryptoFormInputs.encryptionKeyInputForDecryptionWithKey,
},
]}
callback={decryptWithKey}
callbackTestId={aesCryptoFormButtons.decryptWithKeyButton}
responseTestId={aesCryptoFormResponses.decryptionWithKeyResponse}
responseTextTestId={responseText}
styles={{ ...styles }}
/>
<TestForm
title={strings('aes_crypto_test_form.encrypt')}
buttonLabel={strings('aes_crypto_test_form.encrypt')}
textFields={[
{
placeholder: strings('aes_crypto_test_form.data'),
testId: aesCryptoFormInputs.dataInputForEncryption,
},
{
placeholder: strings('aes_crypto_test_form.password'),
testId: aesCryptoFormInputs.passwordInputForEncryption,
},
]}
callback={encrypt}
callbackTestId={aesCryptoFormButtons.encryptButton}
responseTestId={aesCryptoFormResponses.encryptionResponse}
responseTextTestId={responseText}
styles={{ ...styles }}
/>
<TestForm
title={strings('aes_crypto_test_form.decrypt')}
buttonLabel={strings('aes_crypto_test_form.decrypt')}
textFields={[
{
placeholder: strings('aes_crypto_test_form.password'),
testId: aesCryptoFormInputs.passwordInputForDecryption,
},
]}
callback={decrypt}
callbackTestId={aesCryptoFormButtons.decryptButton}
responseTestId={aesCryptoFormResponses.decryptionResponse}
responseTextTestId={responseText}
styles={{ ...styles }}

Fix in CursorFix in Web


Was this report helpful? Give feedback by reacting with 👍 or 👎

@sonarqubecloud
Copy link

Merged via the queue into main with commit 504a50f Jul 10, 2025
63 of 65 checks passed
@chrisleewilcox chrisleewilcox deleted the detox-add-encrypt-password-assert branch July 10, 2025 03:44
@github-actions github-actions bot locked and limited conversation to collaborators Jul 10, 2025
@metamaskbot metamaskbot added the release-7.52.0 Issue or pull request that will be included in release 7.52.0 label Jul 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

No QA Needed Apply this label when your PR does not need any QA effort. release-7.52.0 Issue or pull request that will be included in release 7.52.0 team-qa QA team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants