-
Notifications
You must be signed in to change notification settings - Fork 5.2k
test: Migrate json-rpc e2e tests to Page object modal (part 2) #34048
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
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. |
Builds ready [200ec7b]
UI Startup Metrics (1174 ± 63 ms)
Benchmark value 2218 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 257 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 2699 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 59 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 406 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 1992 exceeds gate value 1970 for chrome webpack home p95 loadScripts Benchmark value 1447 exceeds gate value 1405 for firefox browserify home mean uiStartup Benchmark value 1257 exceeds gate value 1245 for firefox browserify home mean load Benchmark value 1257 exceeds gate value 1239 for firefox browserify home mean domContentLoaded Benchmark value 122 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 26 exceeds gate value 25 for firefox browserify home mean backgroundConnect Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 14 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 1237 exceeds gate value 1230 for firefox browserify home mean loadScripts Benchmark value 16 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1794 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 83 exceeds gate value 70 for firefox browserify home p95 backgroundConnect Benchmark value 51 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 77 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1682 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1448 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1448 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 105 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 27 exceeds gate value 26 for firefox webpack home mean backgroundConnect Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 16 exceeds gate value 15 for firefox webpack home mean getState Benchmark value 1424 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 2070 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1777 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1777 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 297 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 53 exceeds gate value 49 for firefox webpack home p95 backgroundConnect Benchmark value 43 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 1744 exceeds gate value 1630 for firefox webpack home p95 loadScripts Benchmark value 34 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 432ms | Sum of p95 exceeds: 1174ms Sum of all benchmark exceeds: 1606ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Builds ready [0c29fd1]
UI Startup Metrics (1166 ± 54 ms)
Benchmark value 263 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 1700 exceeds gate value 1699 for chrome webpack home mean loadScripts Benchmark value 2710 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 2012 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded Benchmark value 62 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 410 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 2001 exceeds gate value 1970 for chrome webpack home p95 loadScripts Benchmark value 125 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 13 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 313 exceeds gate value 195 for firefox browserify home p95 domInteractive Benchmark value 63 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1655 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1423 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1423 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 108 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 29 exceeds gate value 26 for firefox webpack home mean backgroundConnect Benchmark value 42 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 17 exceeds gate value 15 for firefox webpack home mean getState Benchmark value 1397 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 15 exceeds gate value 13 for firefox webpack home mean setupStore Benchmark value 2088 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1701 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1701 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 304 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 42 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 1676 exceeds gate value 1630 for firefox webpack home p95 loadScripts Benchmark value 34 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 309ms | Sum of p95 exceeds: 938ms Sum of all benchmark exceeds: 1247ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Builds ready [327a7f6]
UI Startup Metrics (1202 ± 58 ms)
Benchmark value 16 exceeds gate value 15 for chrome browserify home mean getState Benchmark value 42 exceeds gate value 41 for chrome browserify home p95 domInteractive Benchmark value 20 exceeds gate value 18 for chrome browserify home p95 backgroundConnect Benchmark value 21 exceeds gate value 17 for chrome browserify home p95 setupStore Benchmark value 2233 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 250 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 2650 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 60 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 340 exceeds gate value 334 for chrome webpack home p95 firstPaint Benchmark value 398 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 128 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 14 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 17 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1706 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 345 exceeds gate value 195 for firefox browserify home p95 domInteractive Benchmark value 51 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 79 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1383 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1382 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 103 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 42 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 18 exceeds gate value 15 for firefox webpack home mean getState Benchmark value 2031 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 277 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 39 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 32 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 106ms | Sum of p95 exceeds: 743ms Sum of all benchmark exceeds: 849ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
Builds ready [1a26e1c]
UI Startup Metrics (1191 ± 63 ms)
Benchmark value 17 exceeds gate value 15 for chrome browserify home mean getState Benchmark value 18 exceeds gate value 17 for chrome browserify home p95 setupStore Benchmark value 2355 exceeds gate value 2192 for chrome webpack home mean uiStartup Benchmark value 1803 exceeds gate value 1711 for chrome webpack home mean load Benchmark value 1796 exceeds gate value 1704 for chrome webpack home mean domContentLoaded Benchmark value 236 exceeds gate value 235 for chrome webpack home mean firstReactRender Benchmark value 1793 exceeds gate value 1699 for chrome webpack home mean loadScripts Benchmark value 2670 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 2091 exceeds gate value 2030 for chrome webpack home p95 load Benchmark value 2080 exceeds gate value 2005 for chrome webpack home p95 domContentLoaded Benchmark value 65 exceeds gate value 57 for chrome webpack home p95 domInteractive Benchmark value 403 exceeds gate value 370 for chrome webpack home p95 firstReactRender Benchmark value 2069 exceeds gate value 1970 for chrome webpack home p95 loadScripts Benchmark value 1410 exceeds gate value 1405 for firefox browserify home mean uiStartup Benchmark value 126 exceeds gate value 110 for firefox browserify home mean domInteractive Benchmark value 26 exceeds gate value 25 for firefox browserify home mean firstReactRender Benchmark value 14 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 1700 exceeds gate value 1660 for firefox browserify home p95 uiStartup Benchmark value 316 exceeds gate value 195 for firefox browserify home p95 domInteractive Benchmark value 30 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 55 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 1655 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1420 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1420 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 105 exceeds gate value 100 for firefox webpack home mean domInteractive Benchmark value 43 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 19 exceeds gate value 15 for firefox webpack home mean getState Benchmark value 1398 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 2055 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 285 exceeds gate value 156 for firefox webpack home p95 domInteractive Benchmark value 46 exceeds gate value 32 for firefox webpack home p95 getState Benchmark value 38 exceeds gate value 28 for firefox webpack home p95 setupStore Sum of mean exceeds: 644ms | Sum of p95 exceeds: 961ms Sum of all benchmark exceeds: 1605ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Optional Chaining Masks Test Errors
The change from this.test.fullTitle()
to this.test?.fullTitle()
in Mocha test contexts masks potential test setup issues. If this.test
is undefined, optional chaining silently returns undefined
for the title
instead of throwing an error, which could hide legitimate problems or lead to unexpected test framework behavior.
test/e2e/json-rpc/switchEthereumChain.spec.ts#L45-L46
metamask-extension/test/e2e/json-rpc/switchEthereumChain.spec.ts
Lines 45 to 46 in 1a26e1c
], | |
title: this.test?.fullTitle(), |
test/e2e/json-rpc/switchEthereumChain.spec.ts#L120-L121
metamask-extension/test/e2e/json-rpc/switchEthereumChain.spec.ts
Lines 120 to 121 in 1a26e1c
], | |
title: this.test?.fullTitle(), |
test/e2e/json-rpc/switchEthereumChain.spec.ts#L248-L249
metamask-extension/test/e2e/json-rpc/switchEthereumChain.spec.ts
Lines 248 to 249 in 1a26e1c
], | |
title: this.test?.fullTitle(), |
test/e2e/json-rpc/switchEthereumChain_pendingConfirmation.spec.ts#L35-L36
metamask-extension/test/e2e/json-rpc/switchEthereumChain_pendingConfirmation.spec.ts
Lines 35 to 36 in 1a26e1c
], | |
title: this.test?.fullTitle(), |
test/e2e/json-rpc/switchEthereumChain_pendingConfirmation.spec.ts#L116-L117
metamask-extension/test/e2e/json-rpc/switchEthereumChain_pendingConfirmation.spec.ts
Lines 116 to 117 in 1a26e1c
], | |
title: this.test?.fullTitle(), |
Bug: Race Condition in Dialog Switching
The method clickFooterConfirmButtonAndAndWaitForWindowToClose()
contains a duplicate "And" in its name, which will cause a runtime error. Additionally, even if this typo is corrected, the test immediately attempts to switch to a new dialog after closing the previous one, without a sufficient delay for the new dialog to appear, leading to a race condition.
test/e2e/json-rpc/switchEthereumChain.spec.ts#L207-L211
metamask-extension/test/e2e/json-rpc/switchEthereumChain.spec.ts
Lines 207 to 211 in 1a26e1c
await confirmation.check_pageIsLoaded(); | |
await confirmation.clickFooterConfirmButtonAndAndWaitForWindowToClose(); | |
// Switch and confirm to queued notification for switchEthereumChain | |
await driver.switchToWindowWithTitle(WINDOW_TITLES.Dialog); |
Was this report helpful? Give feedback by reacting with 👍 or 👎
Description
Migrate following json-rpc e2e specs to follow Page object modal.
The original test file was too long (500+ lines), causing the Check PR Max Lines job always fail. However, this should not block the merge. I also split the file into two separate spec files.
Related issues
Fixes:
https://consensyssoftware.atlassian.net/browse/MMQA-329
Manual testing steps
Tests should pass and be robust
Screenshots/Recordings
Before
After
Pre-merge author checklist
Pre-merge reviewer checklist