End-to-end tests not generating screenshots
- Dominant language
- JavaScript
- Stars
- 15.7k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
### What happened?
We are currently specifying a very old version of Playwright, but with a `^`:
```json
"@playwright/test": "^1.41.1",
```
v1.41.1 is deprecated and no longer available from npm. Because of the caret `^`, `npm install` instead loads `1.55.1`. Playwright does not follow semver, so there are many breaking changes between those two versions.
With the latest version `1.55.1`, the playwright browser binaries are not able to find WebGL on my machine. Here is the screenshot for "3D Models Coloring" using Playwright `1.55.1`:
If I pin Playwright to `1.46.0` (the oldest version still available), the screenshot is generated correctly:
Note: I have to clear the cache of browser binaries when changing versions.
### Reproduction steps
Make sure to start from a clean slate, both for Cesium and for Playwright:
1. Remove all installed packages: `git clean -dxf`
2. Remove Playwright browser binaries. On Ubuntu, they were stored in my home directory: `rm -rf ~/.cache/ms-playwright`
3. `npm install`
4. `npm run build`
5. `npm run test-e2e-update`
### Sandcastle example
_No response_
### Environment
Browser: Playwright's pre-built chromium binaries
CesiumJS Version: 1.134
Operating System: WSL Ubuntu
Contributor guide
Research direction
Start by locating the package manifest entry for @playwright/test and inspect the npm run test-e2e-update script. Reproduce from a clean checkout with the listed package and browser-cache cleanup steps, then verify that the selected Playwright version generates the affected end-to-end screenshots successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, playwright
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100