spbtv_pickle 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/.travis.yml +10 -0
- data/Gemfile +3 -0
- data/Gemfile.lock.development +158 -0
- data/History.txt +499 -0
- data/License.txt +20 -0
- data/README.md +566 -0
- data/Rakefile +20 -0
- data/Rakefile.d/cucumber.rake +27 -0
- data/Rakefile.d/release.rake +44 -0
- data/Rakefile.d/rspec.rake +3 -0
- data/Rakefile.d/yard.rake +5 -0
- data/Todo.txt +3 -0
- data/autotest/discover.rb +9 -0
- data/features/app/app.rb +128 -0
- data/features/app/blueprints.rb +6 -0
- data/features/app/fabricators.rb +6 -0
- data/features/app/factories.rb +25 -0
- data/features/app/views/notifier/email.erb +1 -0
- data/features/app/views/notifier/user_email.erb +6 -0
- data/features/email/email.feature +64 -0
- data/features/generator/generators.feature +59 -0
- data/features/path/models_page.feature +44 -0
- data/features/path/named_route_page.feature +10 -0
- data/features/pickle/create_from_active_record.feature +83 -0
- data/features/pickle/create_from_fabrication.feature +46 -0
- data/features/pickle/create_from_factory_girl.feature +66 -0
- data/features/pickle/create_from_machinist.feature +46 -0
- data/features/step_definitions/email_steps.rb +1 -0
- data/features/step_definitions/extra_email_steps.rb +12 -0
- data/features/step_definitions/fork_steps.rb +4 -0
- data/features/step_definitions/generator_steps.rb +52 -0
- data/features/step_definitions/path_steps.rb +14 -0
- data/features/step_definitions/pickle_steps.rb +1 -0
- data/features/step_definitions/raise_error_steps.rb +7 -0
- data/features/support/email.rb +1 -0
- data/features/support/env.rb +14 -0
- data/features/support/paths.rb +47 -0
- data/features/support/pickle.rb +27 -0
- data/features/support/pickle_app.rb +4 -0
- data/init.rb +0 -0
- data/lib/generators/pickle_generator.rb +44 -0
- data/lib/pickle.rb +26 -0
- data/lib/pickle/adapter.rb +183 -0
- data/lib/pickle/adapters/active_record.rb +67 -0
- data/lib/pickle/adapters/data_mapper.rb +42 -0
- data/lib/pickle/adapters/mongoid.rb +54 -0
- data/lib/pickle/config.rb +49 -0
- data/lib/pickle/email.rb +87 -0
- data/lib/pickle/email/parser.rb +18 -0
- data/lib/pickle/email/world.rb +13 -0
- data/lib/pickle/parser.rb +65 -0
- data/lib/pickle/parser/matchers.rb +87 -0
- data/lib/pickle/path.rb +45 -0
- data/lib/pickle/path/world.rb +5 -0
- data/lib/pickle/session.rb +244 -0
- data/lib/pickle/session/parser.rb +34 -0
- data/lib/pickle/version.rb +3 -0
- data/lib/pickle/world.rb +14 -0
- data/lib/spbtv_pickle.rb +1 -0
- data/rails_generators/pickle/pickle_generator.rb +31 -0
- data/rails_generators/pickle/templates/email.rb +21 -0
- data/rails_generators/pickle/templates/email_steps.rb +65 -0
- data/rails_generators/pickle/templates/paths.rb +47 -0
- data/rails_generators/pickle/templates/pickle.rb +29 -0
- data/rails_generators/pickle/templates/pickle_steps.rb +105 -0
- data/spbtv_pickle.gemspec +38 -0
- data/spec/pickle/adapter_spec.rb +203 -0
- data/spec/pickle/config_spec.rb +112 -0
- data/spec/pickle/email/parser_spec.rb +51 -0
- data/spec/pickle/email_spec.rb +187 -0
- data/spec/pickle/parser/matchers_spec.rb +70 -0
- data/spec/pickle/parser_spec.rb +165 -0
- data/spec/pickle/path_spec.rb +120 -0
- data/spec/pickle/session_spec.rb +448 -0
- data/spec/pickle_spec.rb +24 -0
- data/spec/spec_helper.rb +78 -0
- metadata +370 -0
@@ -0,0 +1,10 @@
|
|
1
|
+
Feature: I can visit a page by named route
|
2
|
+
In order to nav in my features
|
3
|
+
As a feature writer
|
4
|
+
I want to be able visit named routes
|
5
|
+
|
6
|
+
Scenario: visit the new spoons page
|
7
|
+
When I go to the new spoon page
|
8
|
+
Then I should be at the new spoon page
|
9
|
+
And the new spoon page should match route /spoons/new
|
10
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
Feature: I can easily create models from my blueprints
|
2
|
+
|
3
|
+
As a plain old AR user
|
4
|
+
I want to be able to create models with fields
|
5
|
+
So that I can create models quickly and easily in my features
|
6
|
+
|
7
|
+
|
8
|
+
Scenario: I create a user, and see if it looks right
|
9
|
+
Given a user exists with name: "Fred", has_stale_password: true
|
10
|
+
Then the user should not have a status
|
11
|
+
And the user should have a stale password
|
12
|
+
And the user's name should be "Fred"
|
13
|
+
|
14
|
+
Scenario: I create a user, and see if it looks right
|
15
|
+
Given a user exists with name: "Fred", status: "crayzee"
|
16
|
+
Then a user should exist with name: "Fred"
|
17
|
+
And a user should exist with status: "crayzee"
|
18
|
+
But a user should not exist with name: "Wilma"
|
19
|
+
|
20
|
+
Scenario: I create a user with quotes in its status, and see if it looks right
|
21
|
+
Given a user exists with name: "Fred", status: "a little \"off\""
|
22
|
+
Then a user should exist with status: "a little \"off\""
|
23
|
+
|
24
|
+
Scenario: I create a user via a mapping
|
25
|
+
Given I exist with status: "pwned", name: "fred"
|
26
|
+
Then I should have a status
|
27
|
+
And the user: "me" should have a status
|
28
|
+
|
29
|
+
Scenario: I create positive and negative users
|
30
|
+
Given a user exists with name: "Fred", attitude_score: +5.42
|
31
|
+
And another user exists with name: "Ethel", attitude_score: -10
|
32
|
+
And another user exists with name: "Buddha", attitude_score: 2_000_000
|
33
|
+
Then 3 users should exist
|
34
|
+
And the 1st user should be a positive person
|
35
|
+
And the 2nd user should not be a positive person
|
36
|
+
And the 1st user's attitude_score should be 5.42
|
37
|
+
And the 2nd user's attitude_score should be -10
|
38
|
+
And the 3rd user's attitude_score should be 2_000_000
|
39
|
+
And the 3rd user's attitude_score should be 2000000
|
40
|
+
|
41
|
+
Scenario: I create nil values
|
42
|
+
Given a user exists with name: "Fred", attitude_score: nil
|
43
|
+
Then 1 users should exist with attitude_score: nil
|
44
|
+
And that user should be the first user
|
45
|
+
And that user should have no attitude
|
46
|
+
And that user's attitude_score should be nil
|
47
|
+
|
48
|
+
Scenario: create and find using tables
|
49
|
+
Given the following users exist:
|
50
|
+
| name | status |
|
51
|
+
| Jim | married |
|
52
|
+
| Ethel | in a relationship with x |
|
53
|
+
| Garvin | in an "open" relationship |
|
54
|
+
Then the following users should exist:
|
55
|
+
| name |
|
56
|
+
| Jim |
|
57
|
+
| Ethel |
|
58
|
+
| Garvin |
|
59
|
+
And the following users should exist:
|
60
|
+
| status |
|
61
|
+
| married |
|
62
|
+
| in a relationship with x |
|
63
|
+
| in an "open" relationship |
|
64
|
+
And the 1st user should be the 4th user
|
65
|
+
And the 3rd user should be the last user
|
66
|
+
|
67
|
+
Scenario: create and find using tables with referencable names
|
68
|
+
Given the following users exist:
|
69
|
+
| user | name | status |
|
70
|
+
| Jack | Jack | alone |
|
71
|
+
| Pete | Pete | dead |
|
72
|
+
Then the following users should exist:
|
73
|
+
| name |
|
74
|
+
| Jack |
|
75
|
+
| Pete |
|
76
|
+
And the following users should exist:
|
77
|
+
| user | status |
|
78
|
+
| lonely | alone |
|
79
|
+
| rotting | dead |
|
80
|
+
And the 1st user should be the user: "Jack"
|
81
|
+
And the 2nd user should be the user: "Pete"
|
82
|
+
And the user: "lonely" should be the user: "Jack"
|
83
|
+
And the user: "rotting" should be the user: "Pete"
|
@@ -0,0 +1,46 @@
|
|
1
|
+
Feature: I can easily create models with Fabrication
|
2
|
+
|
3
|
+
As a fabrication user
|
4
|
+
I want to be able to leverage my fabricators
|
5
|
+
So that I can create models quickly and easily in my features
|
6
|
+
|
7
|
+
Scenario: I create a knife, and see if it looks right
|
8
|
+
Given a knife exists
|
9
|
+
Then the knife should be sharp
|
10
|
+
And the knife's sharp should be true
|
11
|
+
|
12
|
+
Scenario: I create a blunt knife, and see if it looks right
|
13
|
+
Given a knife exists with sharp: false
|
14
|
+
Then the knife should not be sharp
|
15
|
+
|
16
|
+
Scenario: I create a named knife, and see if it has the name
|
17
|
+
Given a knife exists with name: "John", sharp: false
|
18
|
+
Then a knife should exist with name: "John"
|
19
|
+
And the knife should not be sharp
|
20
|
+
|
21
|
+
Scenario: I create 7 knives of various sharpness
|
22
|
+
Given 2 knives exist with sharp: false
|
23
|
+
And 2 knives exist with sharp: true
|
24
|
+
And a knife exists with sharp: false
|
25
|
+
|
26
|
+
Then the 1st knife should not be sharp
|
27
|
+
And the 2nd knife should not be sharp
|
28
|
+
And the 3rd knife should be sharp
|
29
|
+
And the 4th knife should be sharp
|
30
|
+
And the 5th knife should not be sharp
|
31
|
+
|
32
|
+
And 3 knives should exist with sharp: false
|
33
|
+
And the 1st knife should not be sharp
|
34
|
+
And the 2nd knife should not be sharp
|
35
|
+
And the last knife should not be sharp
|
36
|
+
|
37
|
+
And 2 knives should exist with sharp: true
|
38
|
+
And the first knife should be sharp
|
39
|
+
And the last knife should be sharp
|
40
|
+
|
41
|
+
Scenario: ModelNotKnownError should be informative when failing to find
|
42
|
+
Given a knife exists with sharp: true
|
43
|
+
Then the following should raise a Pickle::Session::ModelNotFoundError with "Can't find a knife with sharp: false from the orm in this scenario":
|
44
|
+
"""
|
45
|
+
Then a knife should exist with sharp: false
|
46
|
+
"""
|
@@ -0,0 +1,66 @@
|
|
1
|
+
Feature: I can easily create models from my factories
|
2
|
+
|
3
|
+
As a pickle user
|
4
|
+
I want to be able to leverage my factories
|
5
|
+
So that I can create models quickly and easily in my features
|
6
|
+
|
7
|
+
Scenario: I create a fork, and see if it looks right
|
8
|
+
Given a fork exists
|
9
|
+
Then the fork should not be completely rusty
|
10
|
+
|
11
|
+
Scenario: I create a fork, and see if it looks right
|
12
|
+
Given a fork exists with name: "Forky"
|
13
|
+
Then a fork should exist with name: "Forky"
|
14
|
+
And the fork should not be completely rusty
|
15
|
+
|
16
|
+
Scenario: I create some forks, and some tines
|
17
|
+
Given a fork: "one" exists
|
18
|
+
And a tine exists with fork: fork "one"
|
19
|
+
And another tine exists with fork: fork "one"
|
20
|
+
|
21
|
+
And a fancy fork exists
|
22
|
+
And a tine exists with fork: the fancy fork
|
23
|
+
|
24
|
+
Then the first tine should be tine of the fork: "one"
|
25
|
+
And the 2nd tine should be tine of fork: "one"
|
26
|
+
And the last tine should be tine of the fancy fork
|
27
|
+
|
28
|
+
Then the first tine should be in fork "one"'s tines
|
29
|
+
And the 2nd tine should be in fork: "one"'s tines
|
30
|
+
And the last tine should be in the fancy fork's tines
|
31
|
+
And the fancy fork should be the last tine's fork
|
32
|
+
|
33
|
+
But the first tine should not be in the fancy fork's tines
|
34
|
+
And the last tine should not be in fork "one"'s tines
|
35
|
+
And the fancy fork should not be the first tine's fork
|
36
|
+
|
37
|
+
Scenario: I create a fork with a tine, and find the tine by the fork
|
38
|
+
Given a fork exists
|
39
|
+
And a tine exists with fork: the fork
|
40
|
+
|
41
|
+
Then a tine should exist with fork: the fork
|
42
|
+
|
43
|
+
Scenario: create a tine with fork refs in a table
|
44
|
+
Given 2 forks exist
|
45
|
+
And the following tines exist:
|
46
|
+
| fork |
|
47
|
+
| the 1st fork |
|
48
|
+
| the 2nd fork |
|
49
|
+
| the 2nd fork |
|
50
|
+
Then the 1st tine should be in the 1st fork's tines
|
51
|
+
And the 2nd tine should be in the 2nd fork's tines
|
52
|
+
And the 3rd tine should be in the 2nd fork's tines
|
53
|
+
And the 1st fork should have 1 tines
|
54
|
+
And the 2nd fork should have 2 tines
|
55
|
+
|
56
|
+
Scenario: I create fork via a mapping
|
57
|
+
Given killah fork exists
|
58
|
+
Then the fork should be fancy
|
59
|
+
And the fancy fork: "of cornwood" should be fancy
|
60
|
+
|
61
|
+
Scenario: create a tine with a missing fork
|
62
|
+
Then the following should raise a Pickle::Session::ModelNotKnownError:
|
63
|
+
"""
|
64
|
+
Given a tine exists with fork: the fork
|
65
|
+
"""
|
66
|
+
|
@@ -0,0 +1,46 @@
|
|
1
|
+
Feature: I can easily create models from my blueprints
|
2
|
+
|
3
|
+
As a machinist user
|
4
|
+
I want to be able to leverage my blueprints
|
5
|
+
So that I can create models quickly and easily in my features
|
6
|
+
|
7
|
+
Scenario: I create a spoon, and see if it looks right
|
8
|
+
Given a spoon exists
|
9
|
+
Then the spoon should be round
|
10
|
+
And the spoon's round should be true
|
11
|
+
|
12
|
+
Scenario: I create a non round spoon, and see if it looks right
|
13
|
+
Given a spoon exists with round: false
|
14
|
+
Then the spoon should not be round
|
15
|
+
|
16
|
+
Scenario: I create a named spoon, and see if it has the name
|
17
|
+
Given a spoon exists with name: "Pete", round: false
|
18
|
+
Then a spoon should exist with name: "Pete"
|
19
|
+
And the spoon should not be round
|
20
|
+
|
21
|
+
Scenario: I create 7 spoons of various roundness
|
22
|
+
Given 2 spoons exist with round: false
|
23
|
+
And 2 spoons exist with round: true
|
24
|
+
And a spoon exists with round: false
|
25
|
+
|
26
|
+
Then the 1st spoon should not be round
|
27
|
+
And the 2nd spoon should not be round
|
28
|
+
And the 3rd spoon should be round
|
29
|
+
And the 4th spoon should be round
|
30
|
+
And the 5th spoon should not be round
|
31
|
+
|
32
|
+
And 3 spoons should exist with round: false
|
33
|
+
And the 1st spoon should not be round
|
34
|
+
And the 2nd spoon should not be round
|
35
|
+
And the last spoon should not be round
|
36
|
+
|
37
|
+
And 2 spoons should exist with round: true
|
38
|
+
And the first spoon should be round
|
39
|
+
And the last spoon should be round
|
40
|
+
|
41
|
+
Scenario: ModelNotKnownError should be informative when failing to find
|
42
|
+
Given a spoon exists with round: true
|
43
|
+
Then the following should raise a Pickle::Session::ModelNotFoundError with "Can't find a spoon with round: false from the orm in this scenario":
|
44
|
+
"""
|
45
|
+
Then a spoon should exist with round: false
|
46
|
+
"""
|
@@ -0,0 +1 @@
|
|
1
|
+
../../rails_generators/pickle/templates/email_steps.rb
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Given(/^an email "(.*?)" with body: "(.*?)" is delivered to (.+?)$/) do |subject, body, to|
|
2
|
+
Notifier.email(to, subject, body).deliver
|
3
|
+
end
|
4
|
+
|
5
|
+
Given(/^an email with a link "(.+?)" to (.+?) is delivered to (.+?)$/) do |text, page, to|
|
6
|
+
body = "some text <a href='http://example.com/#{path_to(page)}'>#{text}</a> more text"
|
7
|
+
Notifier.email(to, "example", body).deliver
|
8
|
+
end
|
9
|
+
|
10
|
+
Given(/^#{capture_model}'s email is delivered$/) do |model|
|
11
|
+
Notifier.user_email(model!(model)).deliver
|
12
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
Before('@gen') do
|
2
|
+
`mv #{Rails.root}/features/ #{Rails.root}/features.orig/ > /dev/null 2>&1`
|
3
|
+
end
|
4
|
+
|
5
|
+
After('@gen') do
|
6
|
+
`rm -rf #{Rails.root}/features`
|
7
|
+
`mv #{Rails.root}/features.orig/ #{Rails.root}/features/ > /dev/null 2>&1`
|
8
|
+
end
|
9
|
+
|
10
|
+
Given(/^cucumber has been freshly generated$/) do
|
11
|
+
Bundler.with_clean_env do
|
12
|
+
`cd #{Rails.root}; rails g cucumber:install -f --capybara`
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Given(/^pickle path email has been freshly generated$/) do
|
17
|
+
Bundler.with_clean_env do
|
18
|
+
`cd #{Rails.root}; rails g pickle paths email -f`
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Given(/^env\.rb already requires (.+)$/) do |file|
|
23
|
+
File.open("#{Rails.root}/features/support/env.rb", "a") do |env|
|
24
|
+
env << "require '#{file}'\n"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
When(/^I run "(.*)"$/) do |command|
|
29
|
+
Bundler.with_clean_env do
|
30
|
+
@output = `cd #{Rails.root}; #{command}`
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
Then(/^I should see "(.*)"$/) do |text|
|
35
|
+
expect(@output).to include(text)
|
36
|
+
end
|
37
|
+
|
38
|
+
Then(/^the file (.+?) should exist$/) do |file|
|
39
|
+
expect(File.exist?("#{Rails.root}/#{file}")).to eq(true)
|
40
|
+
end
|
41
|
+
|
42
|
+
Then(/^the file (.+?) should match \/(.*?)\/$/) do |file, regexp|
|
43
|
+
expect(File.read("#{Rails.root}/#{file}")).to match(/#{regexp}/m)
|
44
|
+
end
|
45
|
+
|
46
|
+
Then(/^the file (.+?) should not match \/(.*?)\/$/) do |file, regexp|
|
47
|
+
expect(File.read("#{Rails.root}/#{file}")).not_to match(/#{regexp}/m)
|
48
|
+
end
|
49
|
+
|
50
|
+
Then /^the file ([^ ]+) should be identical to the local (.+)$/ do |generated_file, source_file|
|
51
|
+
expect(File.read("#{Rails.root}/#{generated_file}")).to eq(File.read("#{File.dirname(__FILE__)}/../#{source_file}"))
|
52
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
|
2
|
+
|
3
|
+
Then(/^(.+?) should match route \/(.+?)$/) do |page, route|
|
4
|
+
regexp = route.gsub(/:(\w*?)id/,'\d+')
|
5
|
+
expect(path_to(page)).to match(/#{regexp}/)
|
6
|
+
end
|
7
|
+
|
8
|
+
When(/^I go to (.+)$/) do |page|
|
9
|
+
visit path_to(page)
|
10
|
+
end
|
11
|
+
|
12
|
+
Then(/^I should be at (.+)$/) do |page|
|
13
|
+
expect(current_url).to match(/#{path_to(page)}/)
|
14
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
../../rails_generators/pickle/templates/pickle_steps.rb
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Then /^the following should raise an? ([\w:]+):$/ do |error, step|
|
2
|
+
expect { steps step }.to raise_error(error.constantize)
|
3
|
+
end
|
4
|
+
|
5
|
+
Then /^the following should raise an? ([\w:]+) with "([^"]*)":$/ do |error, message, step|
|
6
|
+
expect { steps step }.to raise_error(error.constantize, message)
|
7
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
../../rails_generators/pickle/templates/email.rb
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
|
2
|
+
# It is recommended to regenerate this file in the future when you upgrade to a
|
3
|
+
# newer version of cucumber-rails. Consider adding your own code to a new file
|
4
|
+
# instead of editing this one. Cucumber will automatically load all features/**/*.rb
|
5
|
+
# files.
|
6
|
+
|
7
|
+
ENV["RAILS_ENV"] ||= "test"
|
8
|
+
ENV["RAILS_ROOT"] ||= File.expand_path(File.dirname(__FILE__) + '/../../cucumber_test_app')
|
9
|
+
|
10
|
+
require 'capybara'
|
11
|
+
require 'cucumber/rails'
|
12
|
+
Capybara.default_selector = :css
|
13
|
+
ActionController::Base.allow_rescue = false
|
14
|
+
DatabaseCleaner.strategy = :truncation
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module NavigationHelpers
|
2
|
+
# Maps a name to a path. Used by the
|
3
|
+
#
|
4
|
+
# When /^I go to (.+)$/ do |page_name|
|
5
|
+
#
|
6
|
+
# step definition in web_steps.rb
|
7
|
+
#
|
8
|
+
def path_to(page_name)
|
9
|
+
case page_name
|
10
|
+
|
11
|
+
when /the home\s?page/
|
12
|
+
'/'
|
13
|
+
|
14
|
+
# the following are examples using path_to_pickle
|
15
|
+
|
16
|
+
when /^#{capture_model}(?:'s)? page$/ # eg. the forum's page
|
17
|
+
path_to_pickle $1
|
18
|
+
|
19
|
+
when /^#{capture_model}(?:'s)? #{capture_model}(?:'s)? page$/ # eg. the forum's post's page
|
20
|
+
path_to_pickle $1, $2
|
21
|
+
|
22
|
+
when /^#{capture_model}(?:'s)? #{capture_model}'s (.+?) page$/ # eg. the forum's post's comments page
|
23
|
+
path_to_pickle $1, $2, :extra => $3 # or the forum's post's edit page
|
24
|
+
|
25
|
+
when /^#{capture_model}(?:'s)? (.+?) page$/ # eg. the forum's posts page
|
26
|
+
path_to_pickle $1, :extra => $2 # or the forum's edit page
|
27
|
+
|
28
|
+
# Add more mappings here.
|
29
|
+
# Here is an example that pulls values out of the Regexp:
|
30
|
+
#
|
31
|
+
# when /^(.*)'s profile page$/i
|
32
|
+
# user_profile_path(User.find_by_login($1))
|
33
|
+
|
34
|
+
else
|
35
|
+
begin
|
36
|
+
page_name =~ /the (.*) page/
|
37
|
+
path_components = $1.split(/\s+/)
|
38
|
+
self.send(path_components.push('path').join('_').to_sym)
|
39
|
+
rescue Object => e
|
40
|
+
raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
|
41
|
+
"Now, go and add a mapping in #{__FILE__}"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
World(NavigationHelpers)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# this file generated by script/generate pickle [paths] [email]
|
2
|
+
#
|
3
|
+
# Make sure that you are loading your factory of choice in your cucumber environment
|
4
|
+
#
|
5
|
+
# For machinist add: features/support/machinist.rb
|
6
|
+
#
|
7
|
+
# require 'machinist/active_record' # or your chosen adaptor
|
8
|
+
# require File.dirname(__FILE__) + '/../../spec/blueprints' # or wherever your blueprints are
|
9
|
+
#
|
10
|
+
# For FactoryGirl add: features/support/factory_girl.rb
|
11
|
+
#
|
12
|
+
# require 'factory_girl'
|
13
|
+
# require File.dirname(__FILE__) + '/../../spec/factories' # or wherever your factories are
|
14
|
+
#
|
15
|
+
# For Fabrication, just include it in the adapter list when configuring pickle as explained below.
|
16
|
+
#
|
17
|
+
# You may also need to add gem dependencies on your factory of choice in <tt>config/environments/cucumber.rb</tt>
|
18
|
+
|
19
|
+
require 'pickle/world'
|
20
|
+
# Example of configuring pickle:
|
21
|
+
#
|
22
|
+
# Pickle.configure do |config|
|
23
|
+
# config.adapters = [:machinist]
|
24
|
+
# config.map 'I', 'myself', 'me', 'my', :to => 'user: "me"'
|
25
|
+
# end
|
26
|
+
require 'pickle/path/world'
|
27
|
+
require 'pickle/email/world'
|