reticle_assert evaluates a predicate against what the app actually did and returns a verdict: verified plus pass, evidence when it holds, and expected versus observed when it does not. Reach for it when you want a verdict on something you did not just cause, or on several actions at once.
It is the second of the two tools that produce a verdict, the other being reticle_act_and_wait. It takes the same predicate grammar and evaluates it against what already happened.
A real failure
Failures are more instructive than passes, so here is one. I asserted a route change to/ on a page that was already at /:
The route predicate’s field is
pathname. path is accepted as an alias and rewritten, but
pathname is what the published schema declares, so it is the one to write.expected and observed side by side. A verdict that says only “failed” makes you go digging; this one tells you what it wanted, what it saw, and where in your source the relevant element lives.
A failure that names the real value
The same shape on a store read, which is the strongest kind of failure you can get, because it quotes the app’s own data back at you:A pass can still come with a warning
A presence-only predicate passes and tells you not to trust it much:Arguments
Scope it with since
By default an assertion already counts only events since your last act, so a signal buffered before the action cannot fake a pass. Pass since when you want to set that window explicitly: to scope to one particular earlier action, or to widen it deliberately across several.
reticle_act response. Use it whenever you are asserting something an action was supposed to cause.
When to use assert over act_and_wait
Usereticle_act_and_wait when you are performing the action. Use reticle_assert when:
- you are checking a precondition before acting;
- the state was reached by several actions and you want one verdict over the lot;
- you want to assert something extra about an action you already ran, using its
sincecursor.
verified: "unknown" means Reticle could not tell. It is not a pass, and it is not a failure, it
is a statement that the evidence was insufficient. Report it as unknown rather than rounding it in
either direction.