50 lines
1.3 KiB
Gherkin
50 lines
1.3 KiB
Gherkin
Feature: `template' task keyword
|
|
|
|
Scenario: renders an ERB template file
|
|
Given a file named "templates/basic.erb" with:
|
|
"""
|
|
basic template
|
|
"""
|
|
And a recipe with:
|
|
"""
|
|
task(:echo_template) { echo template 'basic' }
|
|
"""
|
|
When I execute the recipe
|
|
Then the output must contain "basic template"
|
|
|
|
Scenario: renders ERB with given attributes as member data
|
|
Given a file named "templates/variables.erb" with:
|
|
"""
|
|
<%= @foo %>
|
|
"""
|
|
And a recipe with:
|
|
"""
|
|
task(:echo_template) { echo template('variables', foo: 'bar') }
|
|
"""
|
|
When I execute the recipe
|
|
Then the output must contain "bar"
|
|
|
|
Scenario: renders without `templates' search path
|
|
Given a file named "templates/basic.erb" with:
|
|
"""
|
|
basic template
|
|
"""
|
|
And a recipe with:
|
|
"""
|
|
task(:echo_template) { echo template './templates/basic' }
|
|
"""
|
|
When I execute the recipe
|
|
Then the output must contain "basic template"
|
|
|
|
Scenario: parses a yaml file
|
|
Given a file named "templates/basic.yaml" with:
|
|
"""
|
|
foo: bar
|
|
"""
|
|
And a recipe with:
|
|
"""
|
|
task(:echo_template) { echo template('basic')['foo'] }
|
|
"""
|
|
When I execute the recipe
|
|
Then the output must match /^bar$/
|