Skip to content

docs: add video recording guide + rework visual-testing#271

Open
goosewobbler wants to merge 5 commits into
mainfrom
docs/video-recording
Open

docs: add video recording guide + rework visual-testing#271
goosewobbler wants to merge 5 commits into
mainfrom
docs/video-recording

Conversation

@goosewobbler
Copy link
Copy Markdown
Contributor

@goosewobbler goosewobbler commented May 11, 2026

Summary

Originally this PR added a single new doc — docs/video-recording.md — recommending wdio-video-reporter as the companion to docs/visual-testing.md (PR #266): video is the debugging artefact, visual is the regression signal.

Scope expanded mid-review to trim and reframe both ecosystem-integration guides so they scale as new framework services land from the roadmap, without needing per-doc maintenance.

Changes

Original: new video-recording guide

  • Quick-start config; pnpm onlyBuiltDependencies snippet for @ffmpeg-installer/*.
  • Honest framing: screenshot-stitching at command granularity, 3–10 fps slideshow — not a real video pipeline.
  • Tauri provider matrix (embedded everywhere; official Linux + Windows — note that unlike the visual cell, the Linux + official combo here works because the reporter has no before() script; crabnebula macOS only, excluded from hosted macOS CI for the TCC reason).
  • Cross-links in packages/electron-service/README.md and packages/tauri-service/README.md.

Expanded scope: trim + reframe both guides (commits 3dfc336, b6cfb24)

  • Trim: replaced parallel Electron + Tauri config blocks with a single service-agnostic snippet showing only the new entry the user adds (reporter or visual service), with ...subdirs parameterised. Cut install/wire-in/spec boilerplate that paraphrased upstream. ~30% line reduction in each doc.
  • Reframe: dropped the "Both @wdio/electron-service and @wdio/tauri-service compose with X" opener in favour of "WDIO's service architecture lets services compose freely — no special integration needed." Framework names are now illustrative examples (mock-API snippets, Tauri provider notes) rather than canonical enumerations. When new framework services land, the docs already cover them — only framework-specific sections need additions.

What stays foregrounded

The valuable, can't-find-anywhere-else content:

  • Tauri provider × OS matrix in both docs.
  • CrabNebula × macOS-CI Screen Recording known issue.
  • official × Linux × executeAsync hang (visual only — explicitly noted as not hit by video).
  • Windows ~0.5% subpixel noise + MAX_MISMATCH_PCT = 1 rationale (visual).
  • pnpm onlyBuiltDependencies for @ffmpeg-installer/* (video).
  • Mock-API handoff for native UI surfaces, framed as framework-service-agnostic with Electron/Tauri as examples (visual).

Test plan

  • Render-check both docs on GitHub — table layout, code blocks, link targets.
  • Click every cross-link: upstream tool docs, GitHub repos, example repo, sibling doc back-link, mock-API references in packages/*/docs/.
  • Confirm Video Recording pointer shows under per-package README sections (Operations on electron, Guides on tauri).
  • Skim both docs end-to-end: a reader arriving cold should be able to wire up the feature without bouncing to upstream for everything.

Companion

🤖 Generated with Claude Code

Recommends wdio-video-reporter for capturing video of test runs
against @wdio/electron-service and @wdio/tauri-service.
Companion to the visual-testing doc — video is for debugging,
visual is for regression detection.

The guide covers the small amount of glue needed (recommended
config for both services, per-OS output convention, retention
modes) and is deliberately honest about what `wdio-video-reporter`
actually does: screenshot stitching at command granularity, not
a real video pipeline. So the output is a 3–10 fps slideshow
suitable for "what happened during this failed test?" debugging,
not smooth screencast.

Surprising-positive finding from the spike (PR #124 in
wdio-desktop-mobile-example): tauri-official + Linux works
here, even though the same cell is broken for @wdio/visual-service.
The reporter has no before() initialisation script, so it
sidesteps the executeAsync hang. Documented in the Tauri
provider notes.

Cross-linked from electron-service README Operations and
tauri-service README Guides, mirroring the visual-testing
cross-links established in PR #266.

Companion to the spike validated in
goosewobbler/wdio-desktop-mobile-example#124.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 11, 2026

Greptile Summary

This PR adds a new docs/video-recording.md guide for wdio-video-reporter and trims docs/visual-testing.md — replacing per-framework config blocks with service-agnostic snippets and adding cross-links between the two companion docs and the per-package READMEs.

  • New video guide covers pnpm onlyBuiltDependencies quirks, the ...subdirs output-path convention, the Tauri provider × OS matrix for video (with the noted official-on-Linux works-for-video nuance), and the CrabNebula macOS CI Screen Recording blocker.
  • Visual testing rework retains all provider matrices and known-issue detail while cutting ~30% of boilerplate; framework names are now illustrative examples rather than a closed enumeration, so new services land without doc surgery.
  • README cross-links added to electron-service and tauri-service; the dioxus-service README is not updated and Dioxus is absent from the video guide, despite both docs using "every currently supported framework" language.

Confidence Score: 5/5

Documentation-only change with no runtime impact; all linked files verified to exist and content is accurate for the validated Electron and Tauri targets.

All four changed files are Markdown documentation. No code is executed, no APIs are modified, and no schemas change. The Tauri provider matrices and known-issue descriptions are internally consistent and match the PR's companion validation results. The only gap is that "every currently supported framework" is stated but Dioxus video recording was not validated or documented — an accuracy nit rather than a functional problem.

docs/video-recording.md — the "every currently supported framework" claim should be scoped to reflect that only Electron and Tauri have been validated for video recording.

Important Files Changed

Filename Overview
docs/video-recording.md New guide covering wdio-video-reporter integration; accurate for Electron and Tauri, but the "every currently supported framework" claim overstates Dioxus coverage since the companion example repo has no Dioxus video configs.
docs/visual-testing.md Trimmed and reframed guide; removed per-framework boilerplate in favour of service-agnostic snippets, retained all framework-specific known issues and provider matrices, added back-link to new video-recording.md. All linked docs verified to exist.
packages/electron-service/README.md Single-line addition of a Video Recording cross-link under the existing Operations section, consistent with existing link style and path convention.
packages/tauri-service/README.md Single-line addition of a Video Recording cross-link under the Guides section, consistent with existing link style; counterpart dioxus-service README was not updated.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[WDIO Test Runner] --> B[Framework Service]
    A --> C[Ecosystem Service / Reporter]
    B --> D["@wdio/electron-service"]
    B --> E["@wdio/tauri-service\n(embedded / official / crabnebula)"]
    B --> F["@wdio/dioxus-service\n(embedded)"]
    C --> G["@wdio/visual-service\n(VRT — regression signal)"]
    C --> H["wdio-video-reporter\n(debugging artefact)"]
    G --> I["__visual__/platform/arch\n[/provider]/baseline|actual"]
    H --> J["__video__/platform/arch\n[/provider]/test-ts.webm"]
    E -- "Tauri adds driverProvider segment" --> I
    E -- "Tauri adds driverProvider segment" --> J
Loading

Fix All in Claude Code Fix All in Cursor

Reviews (5): Last reviewed commit: "Merge branch 'main' into docs/video-reco..." | Re-trigger Greptile

Comment thread docs/video-recording.md Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 11, 2026

Release Preview — no release

No bump label detected.
Reason: No release labels found (need bump:* or release:stable)
Note: Add bump:patch, bump:minor, or bump:major to trigger a release.


Updated automatically by ReleaseKit

goosewobbler and others added 3 commits May 11, 2026 01:34
The setup-finished description named only the Electron output
path. Tauri users following the Tauri config snippet (which adds
a `<provider>` segment) would look for the file at the documented
path and not find it. Split into two bullets so each service's
actual layout is on the page.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… guides

Replace parallel Electron/Tauri config blocks with a single service-agnostic snippet,
foregrounding what's unique to this monorepo — the Tauri provider × OS matrix and the
known issues (CrabNebula × macOS-CI, official × Linux executeAsync hang) — and trimming
the install/wire-in/spec boilerplate that paraphrased upstream docs. Both guides now
share the same shape so they're scannable side-by-side.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…fault

Drop the "Both @wdio/electron-service and @wdio/tauri-service compose with X"
opener in favour of "WDIO's service architecture lets services compose freely —
no special integration needed." Framework names move from canonical enumerations
to illustrative examples (e.g. mock-API snippets, output-path exceptions). New
framework services landing from the roadmap won't need doc updates to be
acknowledged as supported — only framework-specific sections (e.g. Tauri provider
notes) gain content.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@goosewobbler goosewobbler changed the title docs: add video recording guide docs: add video recording guide + rework visual-testing May 18, 2026
Resolves conflict in docs/visual-testing.md from main's PR #275
(@wdio/dioxus-service integration). Kept the reframed
interop-as-default opening and service-agnostic Quick Start; preserved
the genuinely Dioxus-specific content from main (Dioxus provider notes
H2 with the embedded/external table and Xvfb requirement, Dioxus
mock-API example as a third illustration). Dropped main's enumerated
"@wdio/electron-service, @wdio/tauri-service, and @wdio/dioxus-service"
opener and the per-service Dioxus Quick Start config block — both were
the kind of per-service duplication the reframe is designed to avoid.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant