Skip to content

Conversation

@ScharfViktor
Copy link
Contributor

@ScharfViktor ScharfViktor commented Jul 14, 2025

related #890

  • Run tests suite1 (journeys,smoke) and a11y in Firefox, Chromium, and WebKit browsers
  • Adapt the test for uploading a folder in Firefox
  • Ignore the ResizeObserver console error in WebKit — it seems harmless
  • Update nodejs to version 22
  • pnpm playwright install-deps webkit I do this in the test pipeline (temporary solution). A good way to do this is to install all dependencies in the Docker image having a custom Golang container qa#54
  • skip uploading empty folder for webkit browser empty folder is not uploaded #821
  • skip tests for webkit which contain this step
When "Alice" creates the following resources
      | resource    | type    | content   |	      | resource    | type    | content   |
      | example.txt | txtFile | some text |	      | example.txt | txtFile | some text |

in the CI I couldn't get a visible element on main page after creating txt file in the editor and after that closing editor
image

  • skipped checking console error for firefox and webkit
@sse @webkit-skip
  Scenario: sse events on file operations                                                                        # tests/e2e/cucumber/features/smoke/sse.feature:168
    ✔ When "Brian" navigates to the trashbin of the project space "marketing"                                    # file:/woodpecker/src/github.com/opencloud-eu/web/web/tests/e2e/cucumber/steps/ui/spaces.ts:130
[UNCAUGHT EXCEPTION] "uncaught exception: Object"
    ✘ And "Brian" restores the following resources from trashbin" restores the following resources from trashbin #
image npx playwright show-trace https://s3.ci.opencloud.eu/public/web/tracing/3035/sse-events-on-file-operations-brian-2025-7-22-03-16-52.zip

@ScharfViktor ScharfViktor force-pushed the crossBrowserTesting branch 6 times, most recently from 8e1ebe5 to d4639c2 Compare July 21, 2025 14:31
@ScharfViktor ScharfViktor force-pushed the crossBrowserTesting branch 2 times, most recently from b87e977 to c604f54 Compare July 22, 2025 14:31
@ScharfViktor ScharfViktor marked this pull request as ready for review July 22, 2025 14:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request implements cross-browser testing support for the E2E test suite, enabling tests to run on Firefox, Chromium, and WebKit browsers. The implementation addresses browser-specific compatibility issues and optimizes the test execution pipeline.

Key changes include:

  • Added support for multiple browsers (Firefox, Chromium, WebKit) in test configuration and execution
  • Implemented browser-specific workarounds for clipboard permissions and file upload mechanisms
  • Enhanced CI pipeline to run tests across all supported browsers with browser-specific optimizations

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/e2e/support/utils/dragDrop.ts Refactored file drag-drop implementation to use input elements and DataTransfer for better cross-browser compatibility
tests/e2e/support/objects/app-files/link/actions.ts Added WebKit-specific clipboard handling using data attributes instead of navigator.clipboard
tests/e2e/support/environment/actor/shared.ts Implemented browser-specific permission handling, restricting clipboard permissions to Chromium-based browsers
tests/e2e/support/environment/actor/actor.ts Added WebKit-specific error filtering to ignore harmless ResizeObserver warnings
tests/e2e/run-e2e.sh Enhanced script with browser selection support and improved help documentation
tests/e2e/cucumber/features/smoke/upload.feature Added @webkit-skip tags for problematic scenarios and reorganized test structure
tests/e2e/cucumber/features/smoke/sse.feature Added @webkit-skip tag for server-sent events test
tests/e2e/cucumber/environment/index.ts Refactored browser initialization with explicit browser-specific configurations
package.json Added browser-specific npm scripts for running tests with different browsers
cucumber.mjs Added pretty formatter for improved test output readability
.woodpecker.star Updated CI configuration to run tests across multiple browsers and upgraded Node.js to version 22
Comments suppressed due to low confidence (1)

package.json:17

  • Inconsistent naming: script name suggests 'chromium' but environment variable is set to 'chrome'. Consider aligning the naming for clarity.
    "test:e2e:cucumber:chromium": "BROWSER=chrome NODE_TLS_REJECT_UNAUTHORIZED=0 TS_NODE_PROJECT=./tests/e2e/cucumber/tsconfig.json cucumber-js --profile=e2e --parallel ${PARALLEL:-1}",

Copy link
Contributor

@JammingBen JammingBen left a comment

Choose a reason for hiding this comment

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

LGTM

@ScharfViktor
Copy link
Contributor Author

ScharfViktor commented Jul 22, 2025

I noticed a difference between uploading a large file (1 GB) in different browsers.

Chrome: the file uploads in 5 seconds.
Firefox: 21 seconds.
WebKit: more than 30 seconds ~40s (the test failed due to a timeout).

@ScharfViktor ScharfViktor force-pushed the crossBrowserTesting branch from 1a5a03b to 1ded322 Compare July 22, 2025 21:59
@ScharfViktor ScharfViktor merged commit 6846bc1 into main Jul 23, 2025
27 checks passed
@ScharfViktor ScharfViktor deleted the crossBrowserTesting branch July 23, 2025 06:47
@openclouders openclouders mentioned this pull request Jul 23, 2025
1 task
@ScharfViktor ScharfViktor mentioned this pull request Jul 29, 2025
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