The cookbook
Every row here is a step phrasing pulled straight from jevcumber's own test suite โ the fixtures and examples it is evaluated against โ and the resolution Jev is verified to produce for it. These aren't hypothetical. Use them as a starting point for your own .feature files.
| Step | What jevcumber does |
|---|---|
I am on "/login" | open "/login" |
I am on https://en.wikipedia.org | open "https://en.wikipedia.org" |
| Step | What jevcumber does |
|---|---|
I fill in the email field with "alice@example.com" | type "alice@example.com" into textbox "Email" |
I fill in the password field with "secret" | type "secret" into field labelled "Password" |
I fill in the new todo field with "Buy milk" | type "Buy milk" into textbox "New todo" |
I fill in the password field with "wrong" | type "wrong" into field labelled "Password" |
I fill in "Email" with "bob@example.com" | type "bob@example.com" into textbox "Email" |
I fill in "Password" with "secret" | type "secret" into field labelled "Password" |
I fill in "Email" with "dana@example.com" | type "dana@example.com" into textbox "Email" |
I submit "Feed the cat" as a new todo | type "Feed the cat" into textbox "New todo" then press Enter |
I fill in the new todo field with the greeting on the page | type "Welcome, dana" into textbox "New todo" |
I search for "bagel" | type "bagel" into searchbox "Search Wikipedia" then press Enter |
| Step | What jevcumber does |
|---|---|
I click the Log in button | click button "Log in" |
I click the Add button | click button "Add" |
I click "Log in" | click button "Log in" |
I click "Add" | click button "Add" |
I click the link that signs me out | click link "Sign out" |
| Step | What jevcumber does |
|---|---|
I choose "High" as the priority | choose "High" in combobox "Priority" |
| Step | What jevcumber does |
|---|---|
I check the Remind me box | check checkbox "Remind me" |
| Step | What jevcumber does |
|---|---|
I uncheck the Remind me box | uncheck checkbox "Remind me" |
| Step | What jevcumber does |
|---|---|
I press Enter in the password field | press Enter (in field labelled "Password") |
| Step | What jevcumber does |
|---|---|
I hover over the Sign out link | hover link "Sign out" |
| Step | What jevcumber does |
|---|---|
I clear the new todo field | clear textbox "New todo" |
| Step | What jevcumber does |
|---|---|
I scroll to the Add button | scroll button "Add" |
| Step | What jevcumber does |
|---|---|
I upload "avatar.png" as the avatar | upload "avatar.png" to field labelled "Avatar" |
| Step | What jevcumber does |
|---|---|
I wait for "Welcome, dana" to appear | wait for "Welcome, dana" |
I wait 1 second | wait 1 s |
I wait for the page to settle | wait for the page to settle |
| Step | What jevcumber does |
|---|---|
I should see "Welcome, alice" | expect text "Welcome, alice" visible |
I should see "Buy milk" | expect text "Buy milk" visible |
I should see "Invalid email or password" | expect text "Invalid email or password" visible |
I should see "Welcome, bob" | expect text "Welcome, bob" visible |
I should see "Feed the cat" | expect text "Feed the cat" visible |
I should see "dana" | expect text "dana" visible |
I should see "Sign in" | expect text "Sign in" visible |
| Step | What jevcumber does |
|---|---|
I should not see "Welcome" | expect text "Welcome" absent |
| Step | What jevcumber does |
|---|---|
the URL should contain "/todos" | expect URL to contain "/todos" |
the URL should contain "/wiki/Bagel" | expect URL to contain "/wiki/Bagel" |
| Step | What jevcumber does |
|---|---|
I see an article about bagels | expect title to contain "Bagel - Wikipedia" (pinned) |
| Step | What jevcumber does |
|---|---|
the "New todo" field should be visible | expect textbox "New todo" visible |
| Step | What jevcumber does |
|---|---|
I see a greeting for dana | judged live by Jev each run |
I see the todos page for dana | judged live by Jev each run |
Quoted data matters: Jev selects the values in your step, it never invents them, so "alice@example.com" resolves and an unquoted description of an email does not. Page-like control names matter too โ "the Log in button" or a quoted "Log in" match what's really on the page; a vague description gives Jev nothing to select from. See the README for the full house rules.