Unflatten features directory tree

This commit is contained in:
Thibault Jouan
2014-11-18 11:58:23 +00:00
parent 86a84bbe12
commit 2d3975d47f
36 changed files with 1 additions and 0 deletions

23
features/task/ask.feature Normal file
View File

@@ -0,0 +1,23 @@
Feature: `ask' task keyword
@exec
Scenario: prompts user with a list of choices on standard output
Given a recipe with:
"""
task :ask_letter do
letter = ask 'Which letter?', [[:a, ?A], [:b, ?B]]
echo letter.inspect
end
"""
When I execute the recipe interactively
And I type "1"
Then the output must contain:
"""
Which letter?
0: A
1: B
Choice:
:b
"""
And the exit status must be 0

View File

@@ -0,0 +1,13 @@
Feature: `condition' task keyword
Scenario: prevents task actions application when condition is not met
Given a recipe with:
"""
task :some_task do
condition { false }
echo 'evaluated'
end
"""
When I successfully execute the recipe
Then the output must not contain "evaluated"

View File

@@ -0,0 +1,20 @@
Feature: nested tasks
Background:
Given a recipe with:
"""
task :outer_task do
task :inner_task do
echo 'OK'
end
end
"""
Scenario: applies nested tasks
When I successfully execute the recipe
Then the output must match /\AOK/
Scenario: indents logging from nested tasks
When I successfully execute the recipe with option -v
Then the output must match /^ Task:.+/
And the output must match /^ action:.+/

View File

@@ -0,0 +1,11 @@
Feature: `target' task keyword
Scenario: returns the current target
Given a recipe with:
"""
target 'some_host.example'
task(:echo_target) { echo target }
"""
When I execute the recipe
Then the output must contain "some_host.example"

View File

@@ -0,0 +1,49 @@
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$/