Feature: Cucumbers code support
I want to write documentation that always works.
Our tests - our documentation.
### Scenario: Should allow to define code inline and assert results (digits)
Given code var money = 100
Then money
should equal 100
### Scenario: Should allow to define code in the box and assert results (strings) Given code: """ ``` var money = 101; var name = 'plus';
```
"""
Then `money` should equal `101`
Then `name` should equal 'plus'
Then `name` should equal `'plus'`
Then `name` should equal "plus"
Then `name` should equal `"plus"`
### Scenario: Should allow to define code in the box and assert results (objects/functions) Given code: """ ``` var myFunction = function (){ return 200; }
var MyClass = function (){
this.name = 'my name'
}
```
"""
Then `myFunction()` should equal `200`
Then `new MyClass().name` should equal `'my name'`
### Scenario: Should allow to assert types and variables
Given code var MyClass = function(){}
Given code var instance = new MyClass()
Then instance
should be instanceOf MyClass
Then instance
should be ok
### Scenario: Should allow to assert with should chain
Given code var name = 'plus'
Then name
should be ok
Then name
should not be false
### Scenario: Should allow to write doc blocks Given @doc this is inline documentation Given @doc: """ this is box of documentation """
### Scenario: Should allow to require relative module
Given require src/Code.js
as Code
Then Code
should be ok
### Scenario: How to use?
Given @doc npm install plus.cucumber.code --save-dev
Given @doc Simply add code.js file to features folder
Given @doc:
"""
```
// file: features/code.js
module.exports = require('plus.cucumber.code');
```
"""
Given @doc or `node_modules/.bin/plus.cucumber.code.js init`
Given @doc it will create code.js from previous doc box.
8 scenarios (8 passed) 27 steps (27 passed)