I have four recordings under projects/demo-shop/recorded/ and I have been told to convert them rather than hand-write the features. Before I point it at anything that matters: what does sdods record convert write, and where? I do not want a generator rearranging files under me while I am reading something else.
What does sdods record convert actually write, and where do I review it before it lands?
Example threads. These questions and answers were written by the SDODS team to document real problems and how to fix them. The people named are illustrative, not real users. Questions asked on this site are marked new.
2 answers
Accepted answer
Nothing lands in the working tree.
record converthands the spec to the generator agent and the agent's output is a proposal — a directory underproposals/<id>/with a manifest, the files it wants to add and a diff. Yourfeatures/,steps/andpages/are untouched until a person says otherwise.bashsdods record convert projects/demo-shop/recorded/checkout.spec.ts sdods proposals list sdods proposals show <id> sdods proposals accept <id>acceptapplies the files and then runssdods lint, unless you pass--no-lint;--branch <name>puts them on a new git branch if you would rather review it as a pull request.rejecttakes a--reason.The recording itself is never deleted, and it stays runnable under
-l recordedwhether you accept or not, so the conversion is additive in both directions.If you want the shape without spending a model call:
bashsdods record convert projects/demo-shop/recorded/checkout.spec.ts --dry-runwhich prints the prompt and the plan and stops.
--adapter fakeis the other way to exercise the plumbing without a provider.answered by Thom VasseurHaving reviewed a handful of these, the three things worth actually reading in the proposal:
- which steps it reused — it matches the existing step catalogue first and only writes new steps for actions it could not match, so a proposed step that reads almost like one you already have is the thing to send back
- the locators it lifted into the page object — anything fragile in the spec is fragile in the proposal, because conversion does not improve locators, it relocates them
- the tags — every scenario needs exactly one layer tag and one suite tag, and since
acceptruns lint, a mistagged proposal fails there rather than landing quietly
The roles guide also shows passing two recordings of the same flow at once, in which case the generator proposes a single Scenario Outline with the role in the examples table instead of two near-identical scenarios: record and playback with roles and environments.
answered by Ade Oyinlola
Know the answer?
Wrap commands and output in triple backticks and they will render as a code block.
Checking whether you’re signed in…
Have a different question? Ask it.
Related
- Linting only the staged feature files in a pre-commit hook — is --json stable enough?0 answers
- Does colorScheme from the env use: block reach a recording, or only the runner?0 answers
- har record printed no scrub line and the Cookie header is still sitting in the file0 answers
- Audit wants proof the agents cannot write to our repo — what do I actually show them?2 answers
- Can --explain show the values a layer lost with, not just the winner?0 answers