radicle-interface
radicle-interface copied to clipboard
Migrate from Cypress to Playwright
Because Playwright is more flexible and has better DX. We also want to mock less and have true integration tests that actually check that all the tools work together smoothly and allows us to catch bugs that affect users early on.
- [x] set up Playwright scaffolding
- [x] make app configurable during runtime, so we can test different configurations
- [x] move global variable type definitions to a central place and document how they are used
- [x] move all tests to
/tests
- [x] replace any mocks with a real http backend running in a docker container
- [x] replace check-build with playwright equivalent
- [x] warn if http-api container isn't started when running tests locally
- [x] figure out why failing tests on console errors doesn't work in headless mode
- [x] upload test failure assets to CI
- [x] add time manipulation stubs
Specs TBD:
global
- theme switching
- font switching
seeds page
- title, address, id, port, version
- projects list
- navigate from URL -> http://localhost:3000/seeds/0.0.0.0
- navigate from project source page clicking on "0.0.0.0" button
source browsing
- deep link to file source line number
- copy URN to clipboard
- copy peerId to clipboard
- clone dropdown
- copy the two commands to clipboard
- readme could not be loaded
http://localhost:3000/seeds/0.0.0.0/rad:git:hnrkgd7sjt79k4j59ddh11ooxg18rk7soej8o/tree/335dd6dc89b535a4a31e9422c803199bb6b0a09a
- peer without identity
- in peer selector
- in commits listing and single commit view
commits tab
- navigate to source at a specific revision
- more button failing test
single commit view
- title, description, commit sha
- author
- timestamp
- additions/deletions
- diff
- modified http://localhost:3000/seeds/0.0.0.0/rad:git:hnrkgd7sjt79k4j59ddh11ooxg18rk7soej8o/remotes/hyy1k6ggg45pi7ip7ksyn1wt1ob4w5zh1awtg4qu3cxmbh5mws8pj1/commits/0be0f0302269b362be0bfe72aa4843eceaac5e3f
- created http://localhost:3000/seeds/0.0.0.0/rad:git:hnrkgd7sjt79k4j59ddh11ooxg18rk7soej8o/remotes/hyn1mjueopwzrmb18c3zmgg8ei8qunn5wpg76ouymytfqkfxqx7bun/commits/d6318f7f3d9c15b8ac6dd52267c53220d00f0982
- deleted http://localhost:3000/seeds/0.0.0.0/rad:git:hnrkgd7sjt79k4j59ddh11ooxg18rk7soej8o/remotes/hyn1mjueopwzrmb18c3zmgg8ei8qunn5wpg76ouymytfqkfxqx7bun/commits/cd13c2d9a8a930d64a82b6134b44d1b872e33662
navigation
- test routing from various urls
- navigate to a project from the landing page
- navigate to a project via search
- through a seed project listing
Follow-ups:
- Ethereum feature testing
- refactor wallet/session so that Ethereum features can be disabled via config
- visual snapshot tests
- keep heavy assets in a different history so that the repo can be pruned later
- test multiple seeds simultaneously
- search relies on this
- we need to refactor the app to allow adding multiple local seeds on different ports