pickle 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f1e30b140a40e358ef640c8a4468900f10ddc30
4
- data.tar.gz: 8a1a5ce613b46e0ad108a14e5c9f18aadbdce58f
3
+ metadata.gz: b58eef50218f9337a561a6bb1037202cc200fc2a
4
+ data.tar.gz: 4ef8f88b81920ea1e5297a10dc1407d61f4cba71
5
5
  SHA512:
6
- metadata.gz: 9fb3b8d43dd6c71a1d77dbe4033b5cb802f798377b3815b3a907a98dfd4a603c569a558e7db36029df188709be4339a4bd725bd0cf626a98e46be994b739f076
7
- data.tar.gz: e395427019f47d25df0385f16a0d712f5450b4198b83f0530d067dc0b944f2f02688e12fab0649ef74695a6e26388c9e6ac87ba77ce4335b91eb5c24f6486c9d
6
+ metadata.gz: 0dd3d6376c5c8d7372935fc15d451e69c975155461003679e7bdfc6e82bb31775d3fb112eb2d7c2f4eb415591aa50b10ba72028ce68f3f9e4077ef63bda1d9d5
7
+ data.tar.gz: cece36b98a29a5b44c3751f6a592cbf8a2cca0d48e25f97e8ca97d599a55f689a310b1b94288da2cf5d89a193a58860a75aefba7dc5d6f673bd6d0087a9f890b
@@ -1,3 +1,7 @@
1
+ == 0.5.3
2
+ * small fix to pickle_path_for_resources_action_segment
3
+ * update for fabrication adapter with protected method klass
4
+
1
5
  == 0.5.2
2
6
  * replace alias_method_chain by Module#prepend
3
7
  eliminating deprecation warnings when using with Rails 5
@@ -16,7 +16,7 @@ namespace :cucumber do
16
16
  Bundler.with_clean_env do
17
17
  gemfile = "cucumber_test_app/Gemfile"
18
18
  rm_rf "cucumber_test_app"
19
- sh "rails new cucumber_test_app --skip-javascript --skip-sprockets"
19
+ sh "bundle exec rails new cucumber_test_app --skip-javascript --skip-sprockets"
20
20
  sh "echo 'gem \"cucumber-rails\", :require => false' >> #{gemfile}"
21
21
  sh "echo 'gem \"rspec-rails\", \"~>3.0\"' >> #{gemfile}"
22
22
  sh "echo 'gem \"capybara\"' >> #{gemfile}"
@@ -0,0 +1 @@
1
+ features/step_definitions/../../rails_generators/pickle/templates/email_steps.rb
@@ -0,0 +1 @@
1
+ features/step_definitions/../../rails_generators/pickle/templates/pickle_steps.rb
@@ -0,0 +1 @@
1
+ features/support/../../rails_generators/pickle/templates/email.rb
@@ -153,7 +153,7 @@ module Pickle
153
153
 
154
154
  def initialize(factory)
155
155
  if defined? ::Fabrication
156
- @klass, @name = factory[1].klass, factory[0].to_s
156
+ @klass, @name = factory[1].send(:klass), factory[0].to_s
157
157
  end
158
158
  end
159
159
 
@@ -36,7 +36,7 @@ module Pickle
36
36
  def pickle_path_for_resources_action_segment(resources, action, segment)
37
37
  action.blank? or action = action.downcase.gsub(' ','_')
38
38
  segment.blank? or segment = segment.downcase.gsub(' ','_')
39
- resource_names = resources.map{|s| s.is_a?(Symbol) ? s.to_s : s.class.name.underscore}.join("_")
39
+ resource_names = resources.map{|s| s.is_a?(Symbol) ? s.to_s : s.class.name.underscore.gsub('/', '_')}.join("_")
40
40
  models = resources.reject{|s| s.is_a?(Symbol)}
41
41
  parts = [action, resource_names, segment].reject(&:blank?)
42
42
  send("#{parts.join('_')}_path", *models) rescue nil
@@ -1,3 +1,3 @@
1
1
  module Pickle
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
@@ -4,7 +4,7 @@ require 'pickle/path'
4
4
 
5
5
  describe Pickle::Path do
6
6
  include Pickle::Path
7
-
7
+
8
8
  describe "#path_to_pickle, when the model doesn't exist" do
9
9
  before do
10
10
  allow(self).to receive(:model).and_return(nil)
@@ -12,81 +12,81 @@ describe Pickle::Path do
12
12
  it "('that user', :extra => 'new comment') should raise the error raised by model!" do
13
13
  expect { path_to_pickle "that user", "new comment" }.to raise_error(RuntimeError, 'Could not figure out a path for ["that user", "new comment"] {}')
14
14
  end
15
-
15
+
16
16
  end
17
-
17
+
18
18
  describe "#path_to_pickle" do
19
19
  describe "when model returns a user" do
20
20
  let :user_class do
21
21
  double 'User', :name => 'User'
22
22
  end
23
-
23
+
24
24
  let :user do
25
25
  double 'user', :class => user_class
26
26
  end
27
-
27
+
28
28
  before do
29
29
  allow(self).to receive(:model).and_return(user)
30
30
  end
31
-
31
+
32
32
  it "('a user', 'the user: \"fred\"') should retrieve 'a user', and 'the user: \"fred\"' models" do
33
33
  expect(self).to receive(:model).with('a user')
34
34
  expect(self).to receive(:model).with('the user: "fred"')
35
35
  allow(self).to receive(:user_user_path).and_return('the path')
36
36
  expect(path_to_pickle('a user', 'the user: "fred"')).to eq('the path')
37
37
  end
38
-
38
+
39
39
  it "('a user', :action => 'foo') should return foo_user_path(<user>)" do
40
40
  expect(self).to receive(:foo_user_path).with(user).and_return('the path')
41
41
  expect(path_to_pickle('a user', :action => 'foo')).to eq('the path')
42
42
  end
43
-
43
+
44
44
  it "('a user', :action => 'foo') should raise informative error if foo_user_path not defined" do
45
45
  expect(self).to receive(:foo_user_path).with(user).and_raise(NoMethodError)
46
46
  expect { path_to_pickle('a user', :action => 'foo') }.to raise_error(Exception, /Could not figure out a path for/)
47
47
  end
48
-
48
+
49
49
  it "('a user', :segment => 'foo') should return user_foo_path(<user>)" do
50
50
  expect(self).to receive(:user_foo_path).with(user).and_return('the path')
51
51
  expect(path_to_pickle('a user', :segment => 'foo')).to eq('the path')
52
52
  end
53
-
53
+
54
54
  it "('a user', :segment => 'foo') should raise informative error if foo_user_path not defined" do
55
55
  expect(self).to receive(:user_foo_path).with(user).and_raise(NoMethodError)
56
56
  expect { path_to_pickle('a user', :segment => 'foo') }.to raise_error(Exception, /Could not figure out a path for/)
57
57
  end
58
-
58
+
59
59
  it "('a user', :action => 'new', :segment => 'comment') should return new_user_comment_path(<user>)" do
60
60
  expect(self).to receive(:new_user_comment_path).with(user).and_return('the path')
61
61
  expect(path_to_pickle('a user', :segment => 'comment', :action => 'new')).to eq('the path')
62
62
  end
63
-
63
+
64
64
  it "('a user', :action => 'new', :segment => 'comment') should raise informative error if new_user_comment_path not defined" do
65
65
  expect(self).to receive(:new_user_comment_path).with(user).and_raise(NoMethodError)
66
66
  expect { path_to_pickle('a user', :action => 'new', :segment => 'comment') }.to raise_error(Exception, /Could not figure out a path for/)
67
67
  end
68
-
68
+
69
69
  it "('a user', :extra => 'new comment') should return new_user_comment_path(<user>)" do
70
70
  expect(self).to receive(:new_user_comment_path).with(user).and_return('the path')
71
71
  expect(path_to_pickle('a user', :extra => 'new comment')).to eq('the path')
72
72
  end
73
-
73
+
74
74
  it "('a user', :extra => 'new comment') should raise informative error if new_user_comment_path not defined" do
75
75
  expect(self).to receive(:new_user_comment_path).with(user).and_raise(NoMethodError)
76
76
  expect { path_to_pickle('a user', :extra => 'new comment') }.to raise_error(Exception, /Could not figure out a path for/)
77
77
  end
78
-
78
+
79
79
  describe "when args is a list of pickle and non pickle models" do
80
80
  before do
81
81
  allow(self).to receive(:model).with("account").and_return(nil)
82
82
  end
83
-
83
+
84
84
  it "('account', 'the user') should return account_user_path(<user>)" do
85
85
  expect(self).to receive(:account_user_path).with(user).and_return("the path")
86
86
  expect(path_to_pickle('account', 'the user')).to eq('the path')
87
87
  end
88
88
  end
89
-
89
+
90
90
  describe "(private API)" do
91
91
  it "('a user', :extra => 'new ish comment') should try combinations of 'new', 'ish', 'comment'" do
92
92
  expect(self).to receive(:pickle_path_for_resources_action_segment).with([user], '', 'new_ish_comment').once
@@ -97,5 +97,24 @@ describe Pickle::Path do
97
97
  end
98
98
  end
99
99
  end
100
+
101
+ describe "when model returns namespaced user" do
102
+ let :user_class do
103
+ double 'User', :name => 'Admin::User'
104
+ end
105
+
106
+ let :user do
107
+ double 'user', :class => user_class
108
+ end
109
+
110
+ before do
111
+ allow(self).to receive(:model).and_return(user)
112
+ end
113
+
114
+ it "('a user', :action => 'foo') should return foo_admin_user_path(<user>)" do
115
+ expect(self).to receive(:foo_admin_user_path).with(user).and_return('the path')
116
+ expect(path_to_pickle('a user', :action => 'foo')).to eq('the path')
117
+ end
118
+ end
100
119
  end
101
- end
120
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pickle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian White
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-05-09 00:00:00.000000000 Z
12
+ date: 2017-08-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber
@@ -326,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
326
326
  version: 1.3.6
327
327
  requirements: []
328
328
  rubyforge_project: pickle
329
- rubygems_version: 2.4.8
329
+ rubygems_version: 2.6.11
330
330
  signing_key:
331
331
  specification_version: 4
332
332
  summary: Easy model creation and reference in your cucumber features.
@@ -1,65 +0,0 @@
1
- # this file generated by script/generate pickle email
2
- #
3
- # add email mappings in features/support/email.rb
4
-
5
- ActionMailer::Base.delivery_method = :test
6
- ActionMailer::Base.perform_deliveries = true
7
-
8
- Before do
9
- ActionMailer::Base.deliveries.clear
10
- end
11
-
12
- # Clear the deliveries array, useful if your background sends email that you want to ignore
13
- Given(/^all emails? (?:have|has) been delivered$/) do
14
- ActionMailer::Base.deliveries.clear
15
- end
16
-
17
- Given(/^(\d)+ emails? should be delivered$/) do |count|
18
- expect(emails.size).to eq(count.to_i)
19
- end
20
-
21
- When(/^(?:I|they) follow "([^"]*?)" in #{capture_email}$/) do |link, email_ref|
22
- visit_in_email(email(email_ref), link)
23
- end
24
-
25
- When(/^(?:I|they) click the first link in #{capture_email}$/) do |email_ref|
26
- click_first_link_in_email(email(email_ref))
27
- end
28
-
29
- Then(/^(\d)+ emails? should be delivered to (.*)$/) do |count, to|
30
- actual = emails("to: \"#{email_for(to)}\"").size
31
- expect(actual).to eq(count.to_i), "Expected #{count} emails but encountered #{actual} delivered to #{to}"
32
- end
33
-
34
- Then(/^(\d)+ emails? should be delivered with #{capture_fields}$/) do |count, fields|
35
- actual = emails(fields).size
36
- expect(actual).to eq(count.to_i), "Expected #{count} emails but encountered #{actual} to be delivered with #{fields}"
37
- end
38
-
39
- Then(/^#{capture_email} should be delivered to (.+)$/) do |email_ref, to|
40
- expect(email(email_ref, "to: \"#{email_for(to)}\"")).not_to be_nil, "Failed to find #{email_ref} delivered to: #{to}"
41
- end
42
-
43
- Then(/^#{capture_email} should not be delivered to (.+)$/) do |email_ref, to|
44
- expect(email(email_ref, "to: \"#{email_for(to)}\"")).to be_nil, "Unexpectedly found #{email_ref} delivered to: #{to}"
45
- end
46
-
47
- Then(/^#{capture_email} should have #{capture_fields}$/) do |email_ref, fields|
48
- expect(email(email_ref, fields)).not_to be_nil, "Failed to find #{fields} in #{email_ref}"
49
- end
50
-
51
- Then(/^#{capture_email} should contain "(.*)"$/) do |email_ref, text|
52
- expect(email(email_ref).body).to match(/#{text}/), "Failed to find \"#{text}\" in #{email_ref}"
53
- end
54
-
55
- Then(/^#{capture_email} should not contain "(.*)"$/) do |email_ref, text|
56
- expect(email(email_ref).body).not_to match(/#{text}/), "Unexpectedly found \"#{text}\" in #{email_ref}"
57
- end
58
-
59
- Then(/^#{capture_email} should link to (.+)$/) do |email_ref, page|
60
- expect(email(email_ref).body).to match(/#{path_to(page)}/), "Failed to find link to #{page} in #{email_ref}"
61
- end
62
-
63
- Then(/^show me the emails?$/) do
64
- save_and_open_emails
65
- end
@@ -1,105 +0,0 @@
1
- # this file generated by script/generate pickle
2
-
3
- # create a model
4
- Given(/^#{capture_model} exists?(?: with #{capture_fields})?$/) do |name, fields|
5
- create_model(name, fields)
6
- end
7
-
8
- # create n models
9
- Given(/^(\d+) #{capture_plural_factory} exist(?: with #{capture_fields})?$/) do |count, plural_factory, fields|
10
- create_models(count, plural_factory.singularize, fields)
11
- end
12
-
13
- # create models from a table
14
- Given(/^the following #{capture_plural_factory} exists?:?$/) do |plural_factory, table|
15
- create_models_from_table(plural_factory, table)
16
- end
17
-
18
- # find a model
19
- Then(/^#{capture_model} should exist(?: with #{capture_fields})?$/) do |name, fields|
20
- find_model!(name, fields)
21
- end
22
-
23
- # not find a model
24
- Then(/^#{capture_model} should not exist(?: with #{capture_fields})?$/) do |name, fields|
25
- expect(find_model(name, fields)).to be_nil
26
- end
27
-
28
- # find models with a table
29
- Then(/^the following #{capture_plural_factory} should exist:?$/) do |plural_factory, table|
30
- expect(find_models_from_table(plural_factory, table)).not_to be_any(&:nil?)
31
- end
32
-
33
- # not find models with a table
34
- Then(/^the following #{capture_plural_factory} should not exists?:?$/) do |plural_factory, table|
35
- find_models_from_table(plural_factory, table).should be_all(&:nil?)
36
- end
37
-
38
- # find exactly n models
39
- Then(/^(\d+) #{capture_plural_factory} should exist(?: with #{capture_fields})?$/) do |count, plural_factory, fields|
40
- expect(find_models(plural_factory.singularize, fields).size).to eq(count.to_i)
41
- end
42
-
43
- # assert equality of models
44
- Then(/^#{capture_model} should be #{capture_model}$/) do |a, b|
45
- expect(model!(a)).to eq(model!(b))
46
- end
47
-
48
- # assert model is in another model's has_many assoc
49
- Then(/^#{capture_model} should be (?:in|one of|amongst) #{capture_model}(?:'s)? (\w+)$/) do |target, owner, association|
50
- expect(model!(owner).send(association)).to include(model!(target))
51
- end
52
-
53
- # assert model is not in another model's has_many assoc
54
- Then(/^#{capture_model} should not be (?:in|one of|amongst) #{capture_model}(?:'s)? (\w+)$/) do |target, owner, association|
55
- expect(model!(owner).send(association)).not_to include(model!(target))
56
- end
57
-
58
- # assert model is another model's has_one/belongs_to assoc
59
- Then(/^#{capture_model} should be #{capture_model}(?:'s)? (\w+)$/) do |target, owner, association|
60
- expect(model!(owner).send(association)).to eq(model!(target))
61
- end
62
-
63
- # assert model is not another model's has_one/belongs_to assoc
64
- Then(/^#{capture_model} should not be #{capture_model}(?:'s)? (\w+)$/) do |target, owner, association|
65
- expect(model!(owner).send(association)).not_to eq(model!(target))
66
- end
67
-
68
- # assert model.predicate?
69
- Then(/^#{capture_model} should (?:be|have) (?:an? )?#{capture_predicate}$/) do |name, predicate|
70
- if model!(name).respond_to?("has_#{predicate.gsub(' ', '_')}")
71
- expect(model!(name)).to send("have_#{predicate.gsub(' ', '_')}")
72
- else
73
- expect(model!(name)).to send("be_#{predicate.gsub(' ', '_')}")
74
- end
75
- end
76
-
77
- # assert not model.predicate?
78
- Then(/^#{capture_model} should not (?:be|have) (?:an? )?#{capture_predicate}$/) do |name, predicate|
79
- if model!(name).respond_to?("has_#{predicate.gsub(' ', '_')}")
80
- expect(model!(name)).not_to send("have_#{predicate.gsub(' ', '_')}")
81
- else
82
- expect(model!(name)).not_to send("be_#{predicate.gsub(' ', '_')}")
83
- end
84
- end
85
-
86
- # expect(model.attribute).to eq(value)
87
- # expect(model.attribute).not_to eq(value)
88
- Then(/^#{capture_model}'s (\w+) (should(?: not)?) be #{capture_value}$/) do |name, attribute, expectation, expected|
89
- actual_value = model(name).send(attribute)
90
- expectation = expectation.gsub("should", "to").gsub(" ", "_")
91
-
92
- case expected
93
- when 'nil', 'true', 'false'
94
- expect(actual_value).send(expectation, eq(eval(expected)))
95
- when /^[+-]?[0-9_]+(\.\d+)?$/
96
- expect(actual_value).send(expectation, eq(expected.to_f))
97
- else
98
- expect(actual_value.to_s).send(expectation, eq(eval(expected)))
99
- end
100
- end
101
-
102
- # assert size of association
103
- Then /^#{capture_model} should have (\d+) (\w+)$/ do |name, size, association|
104
- expect(model!(name).send(association).size).to eq(size.to_i)
105
- end
@@ -1,21 +0,0 @@
1
- module EmailHelpers
2
- # Maps a name to an email address. Used by email_steps
3
-
4
- def email_for(to)
5
- case to
6
-
7
- # add your own name => email address mappings here
8
-
9
- when /^#{capture_model}$/
10
- model($1).email
11
-
12
- when /^"(.*)"$/
13
- $1
14
-
15
- else
16
- to
17
- end
18
- end
19
- end
20
-
21
- World(EmailHelpers)