vibium internals · candy-mapping test case
The canonical test case (references/test-case.md) run two ways. Every
command below is copied verbatim from scripts/journey_cli.sh and the prompt
scripts/journey_mcp.py sends the agent — not paraphrased, not simplified. Both
arms run the identical sequence of actions against the identical page; only how each
action gets issued differs.
journey_cli.sh
Agent-driven MCP — journey_mcp.py's prompt
vibium go "$URL"
mcp__vibium__browser_navigate
{"url": "https://candymapper.com/"}vibium wait "$DISMISS" --state visible --timeout 10000 vibium click "$DISMISS"
mcp__vibium__browser_wait
{"selector": "[id$=-close-icon]", "state": "visible"}
mcp__vibium__browser_click
{"selector": "[id$=-close-icon]"}vibium scroll into-view 'input[data-aid="First Name"]'
references/selectors.md).mcp__vibium__browser_scroll_into_view
{"selector": "input[data-aid=\"First Name\"]"}vibium fill 'input[data-aid="First Name"]' "Test" vibium fill 'input[data-aid="Last Name"]' "Testerson"
mcp__vibium__browser_fill
{"selector": "input[data-aid=\"First Name\"]", "text": "Test"}
mcp__vibium__browser_fill
{"selector": "input[data-aid=\"Last Name\"]", "text": "Testerson"}vibium click "$ACTION"
mcp__vibium__browser_click
{"selector": "button[data-aid=\"CONTACT_SUBMIT_BUTTON_REND\"]"}vibium wait text "$VALIDATION_TEXT" --timeout 800
false 0/70 times (the click was raced).mcp__vibium__browser_evaluate
{"expression": "document.body.innerText.includes(
\"Please enter a valid email address\")"}
true 70/70 times.vibium fill 'input[data-aid="CONTACT_FORM_EMAIL"]' \ "test@example.invalid" vibium value 'input[data-aid="CONTACT_FORM_EMAIL"]'
precondition_failed and skips the run rather than reporting a fake timing result.mcp__vibium__browser_fill
{"selector": "input[data-aid=\"CONTACT_FORM_EMAIL\"]",
"text": "test@example.invalid"}vibium eval '(arm MutationObserver on success text)'
vibium eval "(()=>{const t=Math.round(performance.now());
document.querySelector('$ACTION').click();return t})()"
vibium sleep 3000 vibium eval '(read window.__hit / success text -> "worked"|"SWALLOWED")'
timing-methodology.md).mcp__vibium__browser_evaluate (arm MutationObserver)
mcp__vibium__browser_click
{"selector": "button[data-aid=\"CONTACT_SUBMIT_BUTTON_REND\"]"}
mcp__vibium__browser_sleep {"ms": 3000}
mcp__vibium__browser_evaluate (read result -> "worked"|"SWALLOWED")