Skip to content

Conversation

emiride
Copy link
Contributor

@emiride emiride commented Sep 1, 2025

Description

Thanks for contributing to the project!
Please fill out this template to help us review your changes.

Related Issue(s)

Closes #3369

Description of Changes

This PR introduces a comprehensive end-to-end testing framework for Catalyst Voices using Playwright. The testing infrastructure enables automated browser-based testing of critical user workflows, particularly focusing on wallet integration and user onboarding flows.

Key Features Added:

E2E Testing Infrastructure:

  • Complete Playwright setup with TypeScript support
  • Browser extension automation capabilities
  • Chrome profile management for isolated test environments
  • Cross-environment testing support (dev, preprod, prod)

Wallet Integration Testing:

  • Support for multiple Cardano wallets (Lace, Eternl, Yoroi, Nufi, Vespr)
  • Automated wallet connection and interaction flows
  • Browser extension handling and popup management
  • Wallet restoration and account setup testing

Page Object Model Implementation:

  • Comprehensive page objects for onboarding flow (20+ steps)
  • Modular and reusable page components
  • Type-safe test fixtures and data models
  • Clean separation of test logic and UI interactions

Test Coverage:

  • Complete onboarding flow automation
  • Wallet connection and verification tests
  • Account creation and profile setup
  • Keychain and seed phrase management
  • Role-based access control (RBAC) transaction signing

Developer Experience:

  • Detailed README with setup instructions
  • Configurable test data and account models
  • Environment-specific configuration
  • Browser profile cleanup and management

Technical Implementation:

  • Framework: Playwright with TypeScript
  • Architecture: Page Object Model pattern
  • Browser Control: Chrome DevTools Protocol (CDP) integration
  • Extension Management: Automated download and loading of wallet extensions
  • Test Isolation: Individual Chrome profiles per test run
  • Data Management: Centralized configuration for accounts and wallets

Files Changed:

  • 104 files modified with +2,355 additions and -974 deletions
  • New e2e testing directory structure
  • Enhanced semantic identifiers for UI automation
  • Improved accessibility and testability of components

This testing framework ensures reliable automated validation of critical user journeys and wallet integrations, providing confidence in deployment and reducing manual testing overhead.

Breaking Changes

No breaking changes. This PR only adds testing infrastructure and improves existing UI components with better semantic identifiers.

Screenshots

N/A - This PR adds automated testing infrastructure.

Related Pull Requests

Please confirm the following checks

  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream module

emiride and others added 3 commits August 25, 2025 13:01
* test(cat-voices): add semantic ids for tests

* test(cat-voices): minor additional changes

* chore(cat-voices): upgrade flutter to 3.32.8 (#3195)

* chore: point to branch-based ci version

* chore: upgrade flutter 3.32.8, dart 3.8.0, gradle wrapper to 8.4

* chore: address deprecated code after flutter upgrade

* chore: upgrade flutter_rust_bridge to 2.11.1

* chore: upgrade dependencies

* chore: let analyzer be transitive dependency

* chore: migrate deprecated API

* chore: remove unused viewport flag

* chore: regenerate flutter_rust_bridge entry point

* chore: downgrade go_router to fix dependency resolution

* chore: upgrade dependencies, remove unused ones

* chore: preserve trailing commas

* chore: disable code-format check

* chore: commit files coming from the new flutter version

* chore: install pods

* fix: tests

* chore: address discarded futures lint

* fix: license list generator

* fix: discarded future

* fix: discarded futures

* chore: dart doc upgrade

* chore: document workarounds

* chore: use tagged ci version

* chore: cleanup

* chore: spelling

* fix: await discarded future

* chore: allow MPL-2.0 license

* test(cat-voices): add semantic tags fir tests

* fix: conflicts

* chore: cleanup

* test(cat-voices): add semantic ids on latest Flutter

* test(cat-voices): fix formatting

* test(cat-voices): fix formatting

* test(cat-voices): fixes based on pr comments

* test(cat-voices): fixes based on pr comments

* test(cat-voices): latest fixes based on pr comments

---------

Co-authored-by: Dominik Toton <[email protected]>
Co-authored-by: Ryszard Schossler <[email protected]>
Co-authored-by: Dominik Toton <[email protected]>
* test(cat-voices): add semantic ids for tests

* test(cat-voices): minor additional changes

* chore(cat-voices): upgrade flutter to 3.32.8 (#3195)

* chore: point to branch-based ci version

* chore: upgrade flutter 3.32.8, dart 3.8.0, gradle wrapper to 8.4

* chore: address deprecated code after flutter upgrade

* chore: upgrade flutter_rust_bridge to 2.11.1

* chore: upgrade dependencies

* chore: let analyzer be transitive dependency

* chore: migrate deprecated API

* chore: remove unused viewport flag

* chore: regenerate flutter_rust_bridge entry point

* chore: downgrade go_router to fix dependency resolution

* chore: upgrade dependencies, remove unused ones

* chore: preserve trailing commas

* chore: disable code-format check

* chore: commit files coming from the new flutter version

* chore: install pods

* fix: tests

* chore: address discarded futures lint

* fix: license list generator

* fix: discarded future

* fix: discarded futures

* chore: dart doc upgrade

* chore: document workarounds

* chore: use tagged ci version

* chore: cleanup

* chore: spelling

* fix: await discarded future

* chore: allow MPL-2.0 license

* test(cat-voices): add semantic tags fir tests

* chore: cleanup

* chore: cleanup

* feat: add semantics

* chore: restore code

* chore: spelling

* fix: conflicts

* chore: cleanup

* chore: reformat code

* test(cat-voices): add semantic ids on latest Flutter

* test(cat-voices): fix formatting

* test(cat-voices): fix formatting

* chore: cleanup

* chore: cleanup

---------

Co-authored-by: emiride <[email protected]>
Co-authored-by: Ryszard Schossler <[email protected]>
# Conflicts:
#	catalyst_voices/apps/voices/lib/widgets/containers/sidebar/space_side_panel.dart
@emiride emiride moved this from New to 🏗 In progress in Catalyst Sep 2, 2025
@damian-molinski damian-molinski added squad: face Frontend Catalyst Experience Team fyi: qa For information - Quality Assurance team no-track Used to skip tracking in Swarmia analytics, etc. labels Sep 2, 2025
emiride and others added 3 commits September 4, 2025 16:54
* test: initial setup implementation

* test(cat-voices): add readme file

* test(cat-voices): add wallet connect test
# Conflicts:
#	catalyst_voices/Earthfile
#	catalyst_voices/apps/voices/lib/widgets/tiles/editable_tile.dart
@emiride emiride changed the title E2e and integration tests test(cat-voice): e2e and integration tests Sep 5, 2025
@emiride emiride changed the title test(cat-voice): e2e and integration tests test(cat-voices): e2e and integration tests Sep 5, 2025
@emiride emiride marked this pull request as ready for review September 5, 2025 08:56
@emiride emiride requested a review from kukkok3 September 5, 2025 08:56
Copy link
Contributor

github-actions bot commented Sep 5, 2025

📚 Docs Preview

The docs for this PR can be previewed at the following URL:

https://docs.dev.projectcatalyst.io/voices/e2e-and-integration-tests

kukkok3
kukkok3 previously approved these changes Sep 9, 2025
Copy link
Contributor

@kukkok3 kukkok3 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@damian-molinski damian-molinski left a comment

Choose a reason for hiding this comment

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

Was able to run e2e tests on my machine!

LGTM

@emiride emiride enabled auto-merge (squash) September 10, 2025 08:59
@emiride emiride merged commit 51e2433 into main Sep 10, 2025
42 checks passed
@emiride emiride deleted the e2e-and-integration-tests branch September 10, 2025 09:53
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in Catalyst Sep 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fyi: qa For information - Quality Assurance team no-track Used to skip tracking in Swarmia analytics, etc. squad: face Frontend Catalyst Experience Team
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

🛠️ [TASK] : Implement connect wallet test
5 participants