Skip to content

[TEST] TASK-04: Implement End-to-End Browser Automation Suite using Python and Playwright #781

Description

@ikostan

TASK-04: Implement End-to-End Browser Automation Suite using Python and Playwright

Description

Develop a production-grade integration and regression test script (tests/splash_transition_flow_test.py) using Python and the Playwright framework to monitor the web loading layers, runtime initialization telemetry, and rendering handshake sequences. The script must mirror the codebase's existing architectural standards—utilizing Chrome DevTools Protocol (CDP) for V8 precision coverage mapping, custom logging hooks, isolated artifact generation on exceptions, and strict synchronization models.

Technical Steps

  1. Create tests/splash_transition_flow_test.py conforming to the project's testing conventions, using explicit type annotations, and importing matching lifecycle dependencies.
  2. Establish an active CDP session on the page context to handle accurate V8 execution coverage tracking metrics.
  3. Inject a standard logging event handler to stream and parse raw console logs across execution boundaries, filtering specifically for the newly configured initialization hooks ("Telemetry - Assembly Transfer:").
  4. Implement a robust synchronization chain: assert #loading visibility state on initial navigation, wait for window.godotInitialized to settle, and verify the #canvas target structure drops opacity overrides smoothly.
  5. Construct a defensive execution trap (except Exception) that writes runtime crash states, current DOM content dumps, and timestamped browser screenshots into the shared artifacts/ folder on test failures.

Acceptance Criteria

  • The automation runner deploys, instruments, and executes cleanly across automated continuous integration pipelines.
  • Custom telemetry filters accurately detect progress assertions on clean profile iterations.
  • Structural UI crashes, black frame regressions, or uncaught compilation breaks actively trip the failure trap to spit out timestamped log snapshots.

Metadata

Metadata

Assignees

Labels

QApythonPull requests that update python codetestingweb

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions