Skip to content

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

Merged
goosewobbler merged 7 commits into
mainfrom
docs/video-recording
May 20, 2026
Merged

docs: add video recording guide + rework visual-testing#271
goosewobbler merged 7 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 integration and reworks docs/visual-testing.md to be framework-agnostic, replacing per-framework config blocks with a single service-agnostic snippet. Cross-links are added to all three package READMEs.

  • New video-recording guide covers install quirks (pnpm onlyBuiltDependencies), output-path conventions with Tauri's extra <provider> segment, screenshot-stitching limitations, and the full Tauri provider × OS × CI matrix.
  • Visual-testing rework consolidates three framework-specific config blocks into one, merges the Dioxus-only Linux Xvfb section into a shared Tauri + Dioxus section (and correctly switches from 24-bit to 16-bit colour depth), and adds a back-link to the new video guide.
  • README cross-links in electron-service, tauri-service, and dioxus-service add a Video Recording pointer alongside the existing Visual Testing entry.

Confidence Score: 5/5

Documentation-only change with no executable code paths; safe to merge.

All five changed files are Markdown documentation. The new video guide is accurate and the visual-testing rework preserves all previously validated technical details while reducing duplication. No production code is touched.

No files require special attention.

Important Files Changed

Filename Overview
docs/video-recording.md New guide for wdio-video-reporter integration; accurate provider matrix, Tauri output-path variants, pnpm onlyBuiltDependencies snippet, and known CI issues are all well-documented.
docs/visual-testing.md Reworked to a framework-agnostic single config snippet; Linux Xvfb section now correctly recommends 16-bit depth (fixing the old 24-bit Dioxus recommendation); cross-links to video guide added.
packages/electron-service/README.md One-line addition: Video Recording link inserted in the Operations section alongside existing Visual Testing entry.
packages/tauri-service/README.md One-line addition: Video Recording link inserted in the Guides section alongside existing Visual Testing entry.
packages/dioxus-service/README.md One-line addition: Video Recording link appended to the Guides section.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[WDIO Test Run] --> B{Framework Service}
    B --> C[electron-service]
    B --> D[tauri-service]
    B --> E[dioxus-service]
    C --> F[Visual Testing]
    D --> F
    E --> F
    C --> G[Video Recording]
    D --> G
    E --> G
    D --> L{Tauri Provider}
    L --> M[embedded]
    L --> N[official]
    L --> O[crabnebula]
    F --> P[Output: __visual__ / platform / arch / provider]
    G --> Q[Output: __video__ / platform / arch / provider]
Loading

Fix All in Claude Code Fix All in Cursor

Reviews (7): Last reviewed commit: "docs: refine review fixes — autoXvfb cre..." | 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
goosewobbler and others added 3 commits May 18, 2026 18:42
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>
- Default config snippets to ESM (drop CJS + workaround callouts)
- Inline subdirs in snippets so they run as-is; note Tauri's driverProvider segment in a comment
- Rewrite Dioxus VRT section: drop empty provider table, lift Xvfb to a shared Linux subsection (Tauri + Dioxus, both wry → WebKitGTK, 16-bit colour depth)
- Drop visual-service hang reference from video doc's Tauri table (out of context)
- Generalise the video "what you get" capture bullet across all webview-scoped providers
- Swap placeholder Dioxus mock example for clipboard_read (native-surface parallel to Electron Menu / Tauri dialog)
- Add Video Recording link to Dioxus README for parity with Electron/Tauri
- Reword the mock-APIs closing line to be matter-of-fact

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

- Credit WDIO's autoXvfb feature for Electron's Linux display handling (was wrongly attributed to Electron itself)
- Drop "Ignore the output directory" as a numbered Quick start step; fold the __video__ gitignore note into Output paths

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@goosewobbler goosewobbler merged commit 15d271b into main May 20, 2026
216 of 219 checks passed
@goosewobbler goosewobbler deleted the docs/video-recording branch May 20, 2026 00:24
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