Skip to content
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

[grid] UI Overview add more sort options #14625

Merged
merged 1 commit into from
Oct 19, 2024
Merged

[grid] UI Overview add more sort options #14625

merged 1 commit into from
Oct 19, 2024

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Oct 19, 2024

Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

Motivation and Context

Continue of #14571
Adding sort by: Browser Name, Browser Version, Slot Count

image

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Copy link
Contributor

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Performance Concern
The compareSlotStereotypes function creates new arrays and performs string operations for each comparison. This could potentially impact performance when sorting large datasets.

Code Duplication
The compareSlotStereotypes function contains duplicated logic for joining array elements. This could be refactored into a separate helper function to improve code maintainability.

Potential Bug
The slotCount sorting function doesn't handle the case where the values are equal, which could lead to inconsistent sorting results.

Copy link
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Score
Performance
Use a more efficient string comparison method to potentially improve performance

Consider using a more efficient comparison method for strings instead of
localeCompare. For large datasets, this could improve performance.

javascript/grid-ui/src/screens/Overview/Overview.tsx [58]

-return joinA.localeCompare(joinB)
+return joinA < joinB ? -1 : joinA > joinB ? 1 : 0
  • Apply this suggestion
Suggestion importance[1-10]: 7

Why:

7
Memoize the sortProperties object to optimize performance by preventing unnecessary re-creation

Consider memoizing the sortProperties object to prevent unnecessary re-creation on
each render.

javascript/grid-ui/src/screens/Overview/Overview.tsx [61-72]

-const sortProperties = {
+const sortProperties = useMemo(() => ({
   'platformName': (a, b) => compareSlotStereotypes(a, b, 'platformName'),
   'status': (a, b) => a.status.localeCompare(b.status),
   'browserName': (a, b) => compareSlotStereotypes(a, b, 'browserName'),
   'browserVersion': (a, b) => compareSlotStereotypes(a, b, 'browserVersion'),
   'slotCount': (a, b) => {
     const valueA = a.slotStereotypes.reduce((sum, st) => sum + st.slotCount, 0)
     const valueB = b.slotStereotypes.reduce((sum, st) => sum + st.slotCount, 0)
     return valueA < valueB ? -1 : 1
   },
   'id': (a, b) => (a.id < b.id ? -1 : 1)
-}
+}), [])
  • Apply this suggestion
Suggestion importance[1-10]: 7

Why:

7
Best practice
Add a key prop to list items to improve React's rendering efficiency

Consider using a key prop for the MenuItem components to help React efficiently
update the list when it changes.

javascript/grid-ui/src/screens/Overview/Overview.tsx [186-190]

 {Object.keys(sortProperties).map((key) => (
-  <MenuItem value={key}>
+  <MenuItem key={key} value={key}>
     {sortPropertiesLabel[key]}
   </MenuItem>
 ))}
  • Apply this suggestion
Suggestion importance[1-10]: 7

Why:

7
Enhancement
Enhance type safety and developer experience by adding TypeScript types to object structures

Consider using TypeScript's type system to define the structure of sortProperties
and sortPropertiesLabel objects for better type safety and autocompletion.

javascript/grid-ui/src/screens/Overview/Overview.tsx [61-81]

-const sortProperties = {
+type SortKey = 'platformName' | 'status' | 'browserName' | 'browserVersion' | 'slotCount' | 'id';
+
+const sortProperties: Record<SortKey, (a: NodeInfo, b: NodeInfo) => number> = {
   'platformName': (a, b) => compareSlotStereotypes(a, b, 'platformName'),
   'status': (a, b) => a.status.localeCompare(b.status),
   'browserName': (a, b) => compareSlotStereotypes(a, b, 'browserName'),
   'browserVersion': (a, b) => compareSlotStereotypes(a, b, 'browserVersion'),
   'slotCount': (a, b) => {
     const valueA = a.slotStereotypes.reduce((sum, st) => sum + st.slotCount, 0)
     const valueB = b.slotStereotypes.reduce((sum, st) => sum + st.slotCount, 0)
     return valueA < valueB ? -1 : 1
   },
   'id': (a, b) => (a.id < b.id ? -1 : 1)
 }
 
-const sortPropertiesLabel = {
+const sortPropertiesLabel: Record<SortKey, string> = {
   'platformName': 'Platform Name',
   'status': 'Status',
   'browserName': 'Browser Name',
   'browserVersion': 'Browser Version',
   'slotCount': 'Slot Count',
   'id': 'ID'
 }
  • Apply this suggestion
Suggestion importance[1-10]: 7

Why:

7

💡 Need additional feedback ? start a PR chat

Copy link
Contributor

qodo-merge-pro bot commented Oct 19, 2024

CI Failure Feedback 🧐

(Checks updated until commit 7052344)

Action: Ruby / Remote Tests (edge, windows) / Remote Tests (edge, windows)

Failed stage: Run Bazel [❌]

Relevant error logs:
1:  ##[group]Operating System
2:  Microsoft Windows Server 2022
...

620:  �[32mAnalyzing:�[0m 29 targets (708 packages loaded, 15383 targets configured)
621:  �[32m[1 / 1]�[0m checking cached actions
622:  �[32mAnalyzing:�[0m 29 targets (708 packages loaded, 49954 targets configured)
623:  �[32m[1 / 21]�[0m [Prepa] Writing repo mapping manifest for //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote
624:  �[32mINFO: �[0mAnalyzed 29 targets (708 packages loaded, 49954 targets configured).
625:  �[32m[9 / 38]�[0m [Prepa] Writing repo mapping manifest for //common/devtools:pdl_to_json [for tool]
626:  �[32m[85 / 1,109]�[0m Creating source manifest for //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 0s local ... (4 actions, 3 running)
627:  �[32m[389 / 2,033]�[0m [Prepa] Creating symlink bazel-out/x64_windows-fastbuild/bin/node_modules/.aspect_rules_js/@[email protected]/node_modules/@jridgewell/sourcemap-codec ... (3 actions, 2 running)
628:  �[32m[1,164 / 2,847]�[0m Creating source manifest for //rb/spec/integration/selenium/webdriver:error-edge-remote; 0s local ... (3 actions running)
...

851:  �[32m[2,974 / 3,139]�[0m Running bundle install (@bundle//:bundle); 4s local, disk-cache ... (4 actions, 3 running)
852:  �[32m[3,006 / 3,139]�[0m Running bundle install (@bundle//:bundle); 5s local, disk-cache ... (4 actions, 3 running)
853:  �[32m[3,010 / 3,139]�[0m Running bundle install (@bundle//:bundle); 6s local, disk-cache ... (2 actions running)
854:  �[32m[3,011 / 3,139]�[0m Running bundle install (@bundle//:bundle); 7s local, disk-cache ... (2 actions, 1 running)
855:  �[32m[3,012 / 3,139]�[0m Running bundle install (@bundle//:bundle); 9s local, disk-cache ... (2 actions, 1 running)
856:  �[32m[3,012 / 3,139]�[0m Running bundle install (@bundle//:bundle); 10s local, disk-cache ... (2 actions running)
857:  �[32m[3,013 / 3,139]�[0m Running bundle install (@bundle//:bundle); 12s local, disk-cache ... (2 actions, 1 running)
858:  �[32mINFO: �[0mFrom Building java/src/org/openqa/selenium/remote/libapi-class.jar (71 source files):
859:  java\src\org\openqa\selenium\remote\ErrorHandler.java:46: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
860:  private final ErrorCodes errorCodes;
861:  ^
862:  java\src\org\openqa\selenium\remote\ErrorHandler.java:60: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
863:  this.errorCodes = new ErrorCodes();
864:  ^
865:  java\src\org\openqa\selenium\remote\ErrorHandler.java:68: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
866:  public ErrorHandler(ErrorCodes codes, boolean includeServerErrors) {
867:  ^
868:  java\src\org\openqa\selenium\remote\Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
869:  ErrorCodes errorCodes = new ErrorCodes();
870:  ^
871:  java\src\org\openqa\selenium\remote\Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
872:  ErrorCodes errorCodes = new ErrorCodes();
873:  ^
874:  java\src\org\openqa\selenium\remote\ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
875:  response.setStatus(ErrorCodes.SUCCESS);
876:  ^
877:  java\src\org\openqa\selenium\remote\ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
878:  response.setState(ErrorCodes.SUCCESS_STRING);
879:  ^
880:  java\src\org\openqa\selenium\remote\W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
881:  new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode())));
882:  ^
883:  java\src\org\openqa\selenium\remote\W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
884:  new ErrorCodes().getExceptionType((String) rawError);
885:  ^
886:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
887:  private final ErrorCodes errorCodes = new ErrorCodes();
888:  ^
889:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
890:  private final ErrorCodes errorCodes = new ErrorCodes();
891:  ^
892:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
893:  int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR;
894:  ^
895:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:101: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
896:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
897:  ^
898:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:103: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
899:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
900:  ^
901:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:117: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
902:  response.setStatus(ErrorCodes.SUCCESS);
903:  ^
904:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:118: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
905:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
906:  ^
907:  java\src\org\openqa\selenium\remote\codec\AbstractHttpResponseCodec.java:124: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
908:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
909:  ^
910:  java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
911:  private final ErrorCodes errorCodes = new ErrorCodes();
912:  ^
913:  java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
914:  private final ErrorCodes errorCodes = new ErrorCodes();
915:  ^
916:  java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:93: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
917:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
918:  ^
919:  java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:98: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
920:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
921:  ^
922:  java\src\org\openqa\selenium\remote\codec\w3c\W3CHttpResponseCodec.java:145: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
923:  response.setStatus(ErrorCodes.SUCCESS);
...

1056:  to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
1057:  See https://github.com/rubyzip/rubyzip for details. The Changelog also
1058:  lists other enhancements and bugfixes that have been implemented since
1059:  version 2.3.0.
1060:  �[32m[3,138 / 3,139]�[0m Running bundle install (@bundle//:bundle); 486s local, disk-cache
1061:  �[32m[3,139 / 3,139]�[0m checking cached actions
1062:  �[32m[3,139 / 3,159]�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote
1063:  �[32m[3,139 / 3,163]�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:shadow_root-edge-remote ... (4 actions, 0 running)
1064:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 1s disk-cache ... (4 actions, 0 running)
1065:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 8s disk-cache ... (4 actions, 0 running)
1066:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 38s disk-cache ... (4 actions, 0 running)
1067:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 43s disk-cache ... (4 actions, 0 running)
1068:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 1s local, disk-cache ... (4 actions, 1 running)
1069:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 55s local, disk-cache ... (4 actions, 1 running)
1070:  �[32m[3,139 / 3,163]�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-edge-remote; 60s local, disk-cache ... (4 actions, 2 running)
1071:  �[32m[3,140 / 3,163]�[0m 1 / 29 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 60s ... (4 actions, 1 running)
1072:  �[32m[3,140 / 3,163]�[0m 1 / 29 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 70s ... (4 actions, 1 running)
1073:  �[32m[3,140 / 3,163]�[0m 1 / 29 tests;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 74s ... (4 actions, 1 running)
...

1129:  �[32m[3,153 / 3,163]�[0m 14 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 179s local, disk-cache ... (4 actions, 2 running)
1130:  �[32m[3,153 / 3,163]�[0m 14 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 190s local, disk-cache ... (4 actions, 2 running)
1131:  �[32m[3,153 / 3,163]�[0m 14 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 193s local, disk-cache ... (4 actions, 2 running)
1132:  �[32m[3,154 / 3,163]�[0m 15 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 194s local, disk-cache ... (4 actions, 1 running)
1133:  �[32m[3,154 / 3,163]�[0m 15 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 205s local, disk-cache ... (4 actions, 1 running)
1134:  �[32m[3,154 / 3,163]�[0m 15 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 210s local, disk-cache ... (4 actions, 1 running)
1135:  �[32m[3,154 / 3,163]�[0m 15 / 29 tests;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote; 222s local, disk-cache ... (4 actions, 2 running)
1136:  �[31m�[1mFAIL: �[0m//rb/spec/integration/selenium/webdriver/remote:driver-edge-remote (see D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/remote/driver-edge-remote/test.log)
1137:  �[31m�[1mFAILED: �[0m//rb/spec/integration/selenium/webdriver/remote:driver-edge-remote (Summary)
...

1152:  Selenium::WebDriver::Remote::Driver
1153:  exposes session_id
1154:  exposes remote status
1155:  Request#[] is deprecated and will be removed in a future version of Rack. Please use request.params[] instead
1156:  uses a default file detector
1157:  lists downloads
1158:  downloads a file
1159:  deletes downloadable files
1160:  errors when not set (FAILED - 1)
1161:  Failures:
1162:  1) Selenium::WebDriver::Remote::Driver errors when not set
1163:  Failure/Error:
1164:  expect {
1165:  driver.downloadable_files
1166:  }.to raise_exception(Error::WebDriverError,
1167:  'You must enable downloads in order to work with downloadable files.')
1168:  expected Selenium::WebDriver::Error::WebDriverError with "You must enable downloads in order to work with downloadable files.", got #<Selenium::WebDriver::Error::UnknownError: Cannot find downloads file system for session id: 0404682... os.arch: 'amd64', os.version: '10.0', java.version: '17.0.11'
1169:  Driver info: driver.version: unknown> with backtrace:
1170:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1171:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
...

1177:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:67:in `call'
1178:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
1179:  # ./rb/lib/selenium/webdriver/remote/features.rb:62:in `downloadable_files'
1180:  # ./rb/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb:27:in `downloadable_files'
1181:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:87:in `block (3 levels) in <module:Remote>'
1182:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:86:in `block (2 levels) in <module:Remote>'
1183:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:86:in `block (2 levels) in <module:Remote>'
1184:  Finished in 22.63 seconds (files took 0.64753 seconds to load)
1185:  7 examples, 1 failure
1186:  Failed examples:
1187:  rspec ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:84 # Selenium::WebDriver::Remote::Driver errors when not set
...

1199:  Selenium::WebDriver::Remote::Driver
1200:  exposes session_id
1201:  exposes remote status
1202:  Request#[] is deprecated and will be removed in a future version of Rack. Please use request.params[] instead
1203:  uses a default file detector
1204:  lists downloads
1205:  downloads a file
1206:  deletes downloadable files
1207:  errors when not set (FAILED - 1)
1208:  Failures:
1209:  1) Selenium::WebDriver::Remote::Driver errors when not set
1210:  Failure/Error:
1211:  expect {
1212:  driver.downloadable_files
1213:  }.to raise_exception(Error::WebDriverError,
1214:  'You must enable downloads in order to work with downloadable files.')
1215:  expected Selenium::WebDriver::Error::WebDriverError with "You must enable downloads in order to work with downloadable files.", got #<Selenium::WebDriver::Error::UnknownError: Cannot find downloads file system for session id: 58d3ebf... os.arch: 'amd64', os.version: '10.0', java.version: '17.0.11'
1216:  Driver info: driver.version: unknown> with backtrace:
1217:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1218:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
...

1224:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:67:in `call'
1225:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
1226:  # ./rb/lib/selenium/webdriver/remote/features.rb:62:in `downloadable_files'
1227:  # ./rb/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb:27:in `downloadable_files'
1228:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:87:in `block (3 levels) in <module:Remote>'
1229:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:86:in `block (2 levels) in <module:Remote>'
1230:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:86:in `block (2 levels) in <module:Remote>'
1231:  Finished in 21.88 seconds (files took 0.68088 seconds to load)
1232:  7 examples, 1 failure
1233:  Failed examples:
1234:  rspec ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:84 # Selenium::WebDriver::Remote::Driver errors when not set
...

1246:  Selenium::WebDriver::Remote::Driver
1247:  exposes session_id
1248:  exposes remote status
1249:  Request#[] is deprecated and will be removed in a future version of Rack. Please use request.params[] instead
1250:  uses a default file detector
1251:  lists downloads
1252:  downloads a file
1253:  deletes downloadable files
1254:  errors when not set (FAILED - 1)
1255:  Failures:
1256:  1) Selenium::WebDriver::Remote::Driver errors when not set
1257:  Failure/Error:
1258:  expect {
1259:  driver.downloadable_files
1260:  }.to raise_exception(Error::WebDriverError,
1261:  'You must enable downloads in order to work with downloadable files.')
1262:  expected Selenium::WebDriver::Error::WebDriverError with "You must enable downloads in order to work with downloadable files.", got #<Selenium::WebDriver::Error::UnknownError: Cannot find downloads file system for session id: 7b49dc7... os.arch: 'amd64', os.version: '10.0', java.version: '17.0.11'
1263:  Driver info: driver.version: unknown> with backtrace:
1264:  # ./rb/lib/selenium/webdriver/remote/response.rb:63:in `add_cause'
1265:  # ./rb/lib/selenium/webdriver/remote/response.rb:41:in `error'
...

1271:  # ./rb/lib/selenium/webdriver/remote/http/common.rb:67:in `call'
1272:  # ./rb/lib/selenium/webdriver/remote/bridge.rb:685:in `execute'
1273:  # ./rb/lib/selenium/webdriver/remote/features.rb:62:in `downloadable_files'
1274:  # ./rb/lib/selenium/webdriver/common/driver_extensions/has_file_downloads.rb:27:in `downloadable_files'
1275:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:87:in `block (3 levels) in <module:Remote>'
1276:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:86:in `block (2 levels) in <module:Remote>'
1277:  # ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:86:in `block (2 levels) in <module:Remote>'
1278:  Finished in 21.83 seconds (files took 0.76619 seconds to load)
1279:  7 examples, 1 failure
1280:  Failed examples:
1281:  rspec ./rb/spec/integration/selenium/webdriver/remote/driver_spec.rb:84 # Selenium::WebDriver::Remote::Driver errors when not set
1282:  ================================================================================
1283:  �[32m[3,155 / 3,163]�[0m 16 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 30s ... (4 actions, 1 running)
1284:  �[32m[3,155 / 3,163]�[0m 16 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 40s ... (4 actions, 1 running)
1285:  �[32m[3,155 / 3,163]�[0m 16 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:virtual_authenticator-edge-remote; 44s ... (4 actions, 1 running)
1286:  �[32m[3,155 / 3,163]�[0m 16 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:storage-edge-remote; 34s ... (4 actions, 2 running)
1287:  �[32m[3,156 / 3,163]�[0m 17 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:storage-edge-remote; 35s ... (4 actions, 1 running)
1288:  �[32m[3,156 / 3,163]�[0m 17 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:storage-edge-remote; 45s ... (4 actions, 1 running)
1289:  �[32m[3,156 / 3,163]�[0m 17 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:storage-edge-remote; 49s ... (4 actions, 1 running)
1290:  �[32m[3,156 / 3,163]�[0m 17 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:manager-edge-remote; 23s ... (4 actions, 2 running)
1291:  �[32m[3,157 / 3,163]�[0m 18 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:manager-edge-remote; 25s ... (4 actions, 1 running)
1292:  �[32m[3,157 / 3,163]�[0m 18 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:manager-edge-remote; 34s ... (4 actions, 1 running)
1293:  �[32m[3,157 / 3,163]�[0m 18 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:manager-edge-remote; 38s ... (4 actions, 1 running)
1294:  �[32m[3,157 / 3,163]�[0m 18 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:fedcm-edge-remote; 20s ... (4 actions, 2 running)
1295:  �[32m[3,158 / 3,163]�[0m 19 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:fedcm-edge-remote; 21s ... (4 actions, 1 running)
1296:  �[32m[3,158 / 3,163]�[0m 19 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:fedcm-edge-remote; 32s ... (4 actions, 1 running)
1297:  �[32m[3,158 / 3,163]�[0m 19 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:fedcm-edge-remote; 35s ... (4 actions, 1 running)
1298:  �[32m[3,158 / 3,163]�[0m 19 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:takes_screenshot-edge-remote; 20s ... (4 actions, 2 running)
1299:  �[32m[3,159 / 3,163]�[0m 20 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:takes_screenshot-edge-remote; 21s ... (4 actions, 1 running)
1300:  �[32m[3,159 / 3,163]�[0m 20 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:takes_screenshot-edge-remote; 32s ... (4 actions, 1 running)
1301:  �[32m[3,159 / 3,163]�[0m 20 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:takes_screenshot-edge-remote; 35s ... (4 actions, 1 running)
1302:  �[32m[3,159 / 3,163]�[0m 20 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 20s ... (4 actions, 2 running)
1303:  �[32m[3,160 / 3,163]�[0m 21 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 22s ... (3 actions, 1 running)
1304:  �[32m[3,160 / 3,163]�[0m 21 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 31s ... (3 actions, 1 running)
1305:  �[32m[3,160 / 3,163]�[0m 21 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:target_locator-edge-remote; 20s ... (3 actions, 2 running)
1306:  �[32m[3,161 / 3,163]�[0m 22 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:target_locator-edge-remote; 21s ... (2 actions, 1 running)
1307:  �[32m[3,161 / 3,163]�[0m 22 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:target_locator-edge-remote; 31s ... (2 actions, 1 running)
1308:  �[32m[3,161 / 3,163]�[0m 22 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/remote:element-edge-remote; 16s local, disk-cache ... (2 actions running)
1309:  �[32m[3,162 / 3,163]�[0m 23 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:target_locator-edge-remote; 1s local, disk-cache
1310:  �[32m[3,162 / 3,163]�[0m 23 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:target_locator-edge-remote; 11s local, disk-cache
1311:  �[32m[3,162 / 3,163]�[0m 23 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:target_locator-edge-remote; 26s local, disk-cache
1312:  �[32m[3,163 / 3,164]�[0m 24 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote; 0s disk-cache
1313:  �[32m[3,163 / 3,164]�[0m 24 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote
1314:  �[32m[3,163 / 3,164]�[0m 24 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote; 1s local, disk-cache
1315:  �[32m[3,163 / 3,164]�[0m 24 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote; 14s local, disk-cache
1316:  �[32m[3,164 / 3,165]�[0m 25 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote; 0s disk-cache
1317:  �[32m[3,164 / 3,165]�[0m 25 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote
1318:  �[32m[3,164 / 3,165]�[0m 25 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote; 1s local, disk-cache
1319:  �[32m[3,164 / 3,165]�[0m 25 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:devtools-edge-remote; 86s local, disk-cache
1320:  �[32m[3,165 / 3,166]�[0m 26 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote; 0s disk-cache
1321:  �[32m[3,165 / 3,166]�[0m 26 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote
1322:  �[32m[3,165 / 3,166]�[0m 26 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote; 1s local, disk-cache
1323:  �[32m[3,165 / 3,166]�[0m 26 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote; 14s local, disk-cache
1324:  �[32m[3,166 / 3,167]�[0m 27 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote; 0s disk-cache
1325:  �[32m[3,166 / 3,167]�[0m 27 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote
1326:  �[32m[3,166 / 3,167]�[0m 27 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote; 1s local, disk-cache
1327:  �[32m[3,166 / 3,167]�[0m 27 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote; 14s local, disk-cache
1328:  �[32m[3,167 / 3,168]�[0m 28 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote; 0s disk-cache
1329:  �[32m[3,167 / 3,168]�[0m 28 / 29 tests, �[31m�[1m1 failed�[0m;�[0m [Sched] Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote
1330:  �[32m[3,167 / 3,168]�[0m 28 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote; 1s local, disk-cache
1331:  �[32m[3,167 / 3,168]�[0m 28 / 29 tests, �[31m�[1m1 failed�[0m;�[0m Testing //rb/spec/integration/selenium/webdriver:bidi-edge-remote; 14s local, disk-cache
1332:  �[32mINFO: �[0mFound 29 test targets...
1333:  �[32mINFO: �[0mElapsed time: 1708.095s, Critical Path: 777.58s
1334:  �[32mINFO: �[0m2889 processes: 1448 disk cache hit, 1180 internal, 227 local, 34 worker.
1335:  �[32mINFO: �[0mBuild completed, 1 test FAILED, 2889 total actions
1336:  //rb/spec/integration/selenium/webdriver:action_builder-edge-remote      �[0m�[32mPASSED�[0m in 28.2s
1337:  //rb/spec/integration/selenium/webdriver:bidi-edge-remote                �[0m�[32mPASSED�[0m in 14.5s
1338:  //rb/spec/integration/selenium/webdriver:devtools-edge-remote            �[0m�[32mPASSED�[0m in 86.8s
1339:  //rb/spec/integration/selenium/webdriver:driver-edge-remote              �[0m�[32mPASSED�[0m in 34.4s
1340:  //rb/spec/integration/selenium/webdriver:element-edge-remote             �[0m�[32mPASSED�[0m in 29.4s
1341:  //rb/spec/integration/selenium/webdriver:error-edge-remote               �[0m�[32mPASSED�[0m in 14.8s
...

1356:  //rb/spec/integration/selenium/webdriver/bidi:browsing_context-edge-remote �[0m�[32mPASSED�[0m in 14.6s
1357:  //rb/spec/integration/selenium/webdriver/bidi:log_inspector-edge-remote  �[0m�[32mPASSED�[0m in 14.6s
1358:  //rb/spec/integration/selenium/webdriver/bidi:script-edge-remote         �[0m�[32mPASSED�[0m in 14.6s
1359:  //rb/spec/integration/selenium/webdriver/edge:driver-edge-remote         �[0m�[32mPASSED�[0m in 34.5s
1360:  //rb/spec/integration/selenium/webdriver/edge:options-edge-remote        �[0m�[32mPASSED�[0m in 21.4s
1361:  //rb/spec/integration/selenium/webdriver/edge:profile-edge-remote        �[0m�[32mPASSED�[0m in 15.0s
1362:  //rb/spec/integration/selenium/webdriver/edge:service-edge-remote        �[0m�[32mPASSED�[0m in 21.7s
1363:  //rb/spec/integration/selenium/webdriver/remote:element-edge-remote      �[0m�[32mPASSED�[0m in 16.3s
1364:  //rb/spec/integration/selenium/webdriver/remote:driver-edge-remote       �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 29.5s
1365:  Stats over 3 runs: max = 29.5s, min = 28.9s, avg = 29.2s, dev = 0.3s
1366:  D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/remote/driver-edge-remote/test.log
1367:  D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/remote/driver-edge-remote/test_attempts/attempt_1.log
1368:  D:/_bazel/execroot/_main/bazel-out/x64_windows-fastbuild/testlogs/rb/spec/integration/selenium/webdriver/remote/driver-edge-remote/test_attempts/attempt_2.log
1369:  Executed 29 out of 29 tests: 28 tests pass and �[0m�[31m�[1m1 fails locally�[0m.
1370:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
1371:  �[0m
1372:  ##[error]Process completed with exit code 1.

✨ CI feedback usage guide:

The CI feedback tool (/checks) automatically triggers when a PR has a failed check.
The tool analyzes the failed checks and provides several feedbacks:

  • Failed stage
  • Failed test name
  • Failure summary
  • Relevant error logs

In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:

/checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"

where {repo_name} is the name of the repository, {run_number} is the run number of the failed check, and {job_number} is the job number of the failed check.

Configuration options

  • enable_auto_checks_feedback - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
  • excluded_checks_list - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
  • enable_help_text - if set to true, the tool will provide a help message with the feedback. Default is true.
  • persistent_comment - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.
  • final_update_message - if persistent_comment is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true.

See more information about the checks tool in the docs.

@VietND96 VietND96 force-pushed the grid-ui branch 2 times, most recently from 4070244 to f9d5cda Compare October 19, 2024 17:16
Copy link

codecov bot commented Oct 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 57.78%. Comparing base (57f8398) to head (7052344).
Report is 824 commits behind head on trunk.

Additional details and impacted files
@@            Coverage Diff             @@
##            trunk   #14625      +/-   ##
==========================================
- Coverage   58.48%   57.78%   -0.70%     
==========================================
  Files          86       89       +3     
  Lines        5270     5614     +344     
  Branches      220      245      +25     
==========================================
+ Hits         3082     3244     +162     
- Misses       1968     2125     +157     
- Partials      220      245      +25     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@VietND96 VietND96 merged commit d922168 into trunk Oct 19, 2024
28 of 31 checks passed
@VietND96 VietND96 deleted the grid-ui branch October 19, 2024 19:44
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.

1 participant