0142GitHub
jevcumber
Cucumber tests from the .feature file alone. No step definitions.
RubyBrewsday/jevcumberREADME ↗
# 🥒 jevcumber
**[jevcumber.dev](https://jevcumber.dev)** — site and demo video
[](https://www.npmjs.com/package/jevcumber)
[](https://github.com/RubyBrewsday/jevcumber/actions/workflows/ci.yml)
[](LICENSE)
**Write Cucumber tests with just the `.feature` file. No step definitions.**
```gherkin
Feature: Wikipedia search
Scenario: Looking up bagels
Given I am on https://en.wikipedia.org
When I search for "bagel"
Then I should see "From Wikipedia, the free encyclopedia"
And the URL should contain "/wiki/Bagel"
```
```console
$ jevcumber examples/
Feature: Wikipedia search
Scenario: Looking up bagels
✓ Given I am on https://en.wikipedia.org
✓ When I search for "bagel"
✓ Then I should see "From Wikipedia, the free encyclopedia"
✓ Then the URL should contain "/wiki/Bagel"
1 scenarios (1 passed) · 4 steps (4 passed)
```
That's the whole test. There is no glue code behind it.
## How it works
jevcumber opens your site in a real browser with [Playwright](https://playwright.dev) and, for each
Gherkin step, asks [Jev](https://docs.typesafe.ai) — TypeSafe AI's fast *System One* model — what the
step means **on the page in front of it**.
Jev never writes code or invents values. jevcumber lists what's actually there — the page's buttons,
fields and links, and the literal values in your step — and Jev *picks* among them:
| Your step | jevcumber asks | Jev picks |
| --- | --- | --- |
| `When I search for "bagel"` | what kind of action is this? | **fill** |
| | which control? `Search Wikipedia`, `Log in`, `Donate`… | **Search Wikipedia** |
| | which literal is the text to type? | **"bagel"** |
| | type only, or type and submit? | **submit** |
All of those questions go out in one request (about a second), each answer comes back with a
proba