← All pillars
The scenario

Scenarios

A case used to be two hundred lines of script that mostly repeated the previous case. What is left in the file now is the part that is actually about your application.

cases/report.wwx
# the defect this case exists to catch — a case that can name none is one
# nobody can justify, and one removed by accident is one nobody misses
case:     language-round-trip
catches:  a translated menu entry that leaves the report pane's labels in English

precondition:
  language: pt-BR              # absent -> named as unchecked, never red

fixture:
  app:         bin/Debug/App.exe
  environment: [ light, dark ] # every launch this case makes, not only the first
  shareable:   false           # this one writes, so it owns its process

steps:
  - resolve: Window#main > Pane#reportHost > Text[order=top]
  - act:     invoke MenuItem[key=menu.language.ptBR]
  - assert:  labels from strings.pt-BR.json
  - capture: Pane#reportHost -> artifacts/report.pt-BR.png

What the engine owns

The loop, the waits, the retries and the verdicts. Which is why a fix to any of them is applied once rather than to some of twenty-seven copies of a runner while the rest keep the bug.

What the file owns

  • Steps, locators, acts and expectations, as fields.
  • The precondition, declared — so its absence is named as unchecked rather than going red for a reason about the desk.
  • The fixture and the sampled environments, passed to every launch the case makes rather than only the first.
  • Whether the window is shareable, so three cases that only read it do not each pay their own launch.
  • The defect the case exists to catch, so a case nobody can justify is visible and a case removed by accident is missed.

Validated at insertion

Every field, as it is written. A refusal costs a retry and never a deletion — which matters most for the caller writing the file a field at a time rather than pasting it whole.

The tools that carry that schema →

Run one, and be told what you did not run

A file, a case or a tag. A single case is ten seconds when a single act is what changed, and the run says what it left out rather than reporting a total that quietly moved.