apache / apache/texera

Add the Docs module and the Playwright automation foundation

Open
#7,519 0 comments 0 reactions 1 assignee Claimed by @xuang7 View on GitHub
Dominant language
Scala
Stars
314
Forks
187
Avg merge
1d 21h
Merged PRs (30d)
214

Description

### Feature Summary

Step 1 of the operator-demo video generator: the shared Playwright automation foundation.

### Proposed Solution or Design

Add a new `Docs` sbt module with Playwright (Chromium) as a dependency. This module provides the shared framework that later operator-demo controllers and generated scripts will build on.

The module includes:
- `ControllerContext` and shared base types: define `ControllerContext` together with the common step, controller, and builder abstractions used by later UI controllers.
- Shared Playwright utilities: add reusable helpers for common browser interactions, including cursor-visible clicks, optional press-and-hold behavior for controls that do not reliably respond to instantaneous clicks, dropdown selection, explicit waits, and canvas geometry helpers.
- `OperatorScript` interface: define the interface implemented by each per-operator script. It includes separate `setup` and `demo` phases so preparation work, such as creating or importing the sample workflow, runs before recording starts and remains outside the final video.
- Shared execution constants: centralize commonly used values such as delay tiers, timeout ceilings, retry counts, and Run button state strings.

Controllers follow a builder-style API:

```text
new SomeControllerBuilder(ctx)
.someAction(...)
.execute()
```

### Affected Area

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.