rspec-rails 2.14.1 → 2.14.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +9 -0
  3. data/lib/autotest/rails_rspec2.rb +1 -0
  4. data/lib/generators/rspec/install/templates/spec/spec_helper.rb.tt +6 -1
  5. data/lib/rspec/rails/adapters.rb +1 -0
  6. data/lib/rspec/rails/example/controller_example_group.rb +2 -1
  7. data/lib/rspec/rails/matchers/have_extension.rb +1 -0
  8. data/lib/rspec/rails/matchers/routing_matchers.rb +4 -0
  9. data/lib/rspec/rails/mocks.rb +6 -0
  10. data/lib/rspec/rails/tasks/rspec.rake +12 -5
  11. data/lib/rspec/rails/version.rb +1 -1
  12. metadata +38 -214
  13. data/features/Autotest.md +0 -24
  14. data/features/Generators.md +0 -24
  15. data/features/GettingStarted.md +0 -84
  16. data/features/README.md +0 -56
  17. data/features/RailsVersions.md +0 -4
  18. data/features/Transactions.md +0 -84
  19. data/features/Upgrade.md +0 -121
  20. data/features/controller_specs/Cookies.md +0 -57
  21. data/features/controller_specs/README.md +0 -45
  22. data/features/controller_specs/anonymous_controller.feature +0 -378
  23. data/features/controller_specs/bypass_rescue.feature +0 -75
  24. data/features/controller_specs/controller_spec.feature +0 -58
  25. data/features/controller_specs/engine_routes.feature +0 -51
  26. data/features/controller_specs/isolation_from_views.feature +0 -87
  27. data/features/controller_specs/render_views.feature +0 -114
  28. data/features/feature_specs/feature_spec.feature +0 -34
  29. data/features/helper_specs/helper_spec.feature +0 -122
  30. data/features/mailer_specs/url_helpers.feature +0 -38
  31. data/features/matchers/README.md +0 -18
  32. data/features/matchers/new_record_matcher.feature +0 -41
  33. data/features/matchers/redirect_to_matcher.feature +0 -40
  34. data/features/matchers/relation_match_array.feature +0 -27
  35. data/features/matchers/render_template_matcher.feature +0 -49
  36. data/features/mocks/mock_model.feature +0 -147
  37. data/features/mocks/stub_model.feature +0 -58
  38. data/features/model_specs/README.md +0 -21
  39. data/features/model_specs/errors_on.feature +0 -51
  40. data/features/model_specs/records.feature +0 -27
  41. data/features/model_specs/transactional_examples.feature +0 -109
  42. data/features/request_specs/request_spec.feature +0 -49
  43. data/features/routing_specs/README.md +0 -16
  44. data/features/routing_specs/be_routable_matcher.feature +0 -80
  45. data/features/routing_specs/engine_routes.feature +0 -38
  46. data/features/routing_specs/named_routes.feature +0 -18
  47. data/features/routing_specs/route_to_matcher.feature +0 -90
  48. data/features/step_definitions/additional_cli_steps.rb +0 -4
  49. data/features/step_definitions/model_steps.rb +0 -3
  50. data/features/support/env.rb +0 -53
  51. data/features/support/rails_versions.rb +0 -4
  52. data/features/support/rubinius.rb +0 -6
  53. data/features/view_specs/inferred_controller_path.feature +0 -45
  54. data/features/view_specs/stub_template.feature +0 -51
  55. data/features/view_specs/view_spec.feature +0 -206
  56. data/spec/autotest/rails_rspec2_spec.rb +0 -36
  57. data/spec/generators/rspec/controller/controller_generator_spec.rb +0 -97
  58. data/spec/generators/rspec/helper/helper_generator_spec.rb +0 -30
  59. data/spec/generators/rspec/install/install_generator_spec.rb +0 -30
  60. data/spec/generators/rspec/integration/integration_generator_spec.rb +0 -44
  61. data/spec/generators/rspec/mailer/mailer_generator_spec.rb +0 -48
  62. data/spec/generators/rspec/model/model_generator_spec.rb +0 -52
  63. data/spec/generators/rspec/observer/observer_generator_spec.rb +0 -21
  64. data/spec/generators/rspec/scaffold/scaffold_generator_spec.rb +0 -138
  65. data/spec/generators/rspec/view/view_generator_spec.rb +0 -41
  66. data/spec/rspec/rails/assertion_adapter_spec.rb +0 -28
  67. data/spec/rspec/rails/assertion_delegator_spec.rb +0 -43
  68. data/spec/rspec/rails/configuration_spec.rb +0 -26
  69. data/spec/rspec/rails/deprecations_spec.rb +0 -18
  70. data/spec/rspec/rails/example/controller_example_group_spec.rb +0 -100
  71. data/spec/rspec/rails/example/feature_example_group_spec.rb +0 -56
  72. data/spec/rspec/rails/example/helper_example_group_spec.rb +0 -64
  73. data/spec/rspec/rails/example/mailer_example_group_spec.rb +0 -21
  74. data/spec/rspec/rails/example/model_example_group_spec.rb +0 -15
  75. data/spec/rspec/rails/example/request_example_group_spec.rb +0 -17
  76. data/spec/rspec/rails/example/routing_example_group_spec.rb +0 -32
  77. data/spec/rspec/rails/example/view_example_group_spec.rb +0 -235
  78. data/spec/rspec/rails/extensions/active_model/errors_on_spec.rb +0 -23
  79. data/spec/rspec/rails/extensions/active_record/base_spec.rb +0 -42
  80. data/spec/rspec/rails/fixture_support_spec.rb +0 -17
  81. data/spec/rspec/rails/matchers/be_a_new_spec.rb +0 -142
  82. data/spec/rspec/rails/matchers/be_new_record_spec.rb +0 -33
  83. data/spec/rspec/rails/matchers/be_routable_spec.rb +0 -41
  84. data/spec/rspec/rails/matchers/be_valid_spec.rb +0 -44
  85. data/spec/rspec/rails/matchers/errors_on_spec.rb +0 -38
  86. data/spec/rspec/rails/matchers/has_spec.rb +0 -29
  87. data/spec/rspec/rails/matchers/have_rendered_spec.rb +0 -93
  88. data/spec/rspec/rails/matchers/redirect_to_spec.rb +0 -80
  89. data/spec/rspec/rails/matchers/relation_match_array_spec.rb +0 -31
  90. data/spec/rspec/rails/matchers/route_to_spec.rb +0 -151
  91. data/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb +0 -31
  92. data/spec/rspec/rails/mocks/mock_model_spec.rb +0 -401
  93. data/spec/rspec/rails/mocks/stub_model_spec.rb +0 -154
  94. data/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +0 -32
  95. data/spec/rspec/rails/view_rendering_spec.rb +0 -111
  96. data/spec/spec_helper.rb +0 -32
  97. data/spec/support/ar_classes.rb +0 -42
  98. data/spec/support/helpers.rb +0 -34
  99. data/spec/support/matchers.rb +0 -9
  100. data/spec/support/null_object.rb +0 -6
@@ -1,23 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "errors_on" do
4
- let(:klass) do
5
- Class.new do
6
- include ActiveModel::Validations
7
- end
8
- end
9
-
10
- it "calls valid?" do
11
- model = klass.new
12
- model.should_receive(:valid?)
13
- model.errors_on(:foo)
14
- end
15
-
16
- it "returns the errors on that attribute" do
17
- model = klass.new
18
- model.stub(:errors) do
19
- { :foo => ['a', 'b'] }
20
- end
21
- model.errors_on(:foo).should eq(['a','b'])
22
- end
23
- end
@@ -1,42 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ::ActiveModel::Validations do
4
- describe "#errors_on" do
5
- context "ActiveModel class that takes no arguments to valid?" do
6
- let(:klass) {
7
- Class.new do
8
- include ActiveModel::Validations
9
-
10
- def self.name
11
- "ActiveModelValidationsFake"
12
- end
13
-
14
- def valid?
15
- super
16
- end
17
-
18
- attr_accessor :name
19
- validates_presence_of :name
20
- end
21
- }
22
-
23
- context "with nil name" do
24
- it "has one error" do
25
- object = klass.new
26
- object.name = ""
27
-
28
- expect(object).to have(1).error_on(:name)
29
- end
30
- end
31
-
32
- context "with non-blank name" do
33
- it "has no error" do
34
- object = klass.new
35
- object.name = "Ywen"
36
-
37
- expect(object).to have(:no).error_on(:name)
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,17 +0,0 @@
1
- require "spec_helper"
2
-
3
- module RSpec::Rails
4
- describe FixtureSupport do
5
- context "with use_transactional_fixtures set to false" do
6
- it "still supports fixture_path" do
7
- RSpec.configuration.stub(:use_transactional_fixtures) { false }
8
- group = RSpec::Core::ExampleGroup.describe do
9
- include FixtureSupport
10
- end
11
-
12
- group.should respond_to(:fixture_path)
13
- group.should respond_to(:fixture_path=)
14
- end
15
- end
16
- end
17
- end
@@ -1,142 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "be_a_new matcher" do
4
- include RSpec::Rails::Matchers
5
-
6
- context "new record" do
7
- let(:record) do
8
- Class.new do
9
- def new_record?; true; end
10
- end.new
11
- end
12
- context "right class" do
13
- it "passes" do
14
- record.should be_a_new(record.class)
15
- end
16
- end
17
- context "wrong class" do
18
- it "fails" do
19
- record.should_not be_a_new(String)
20
- end
21
- end
22
- end
23
-
24
- context "existing record" do
25
- let(:record) do
26
- Class.new do
27
- def new_record?; false; end
28
- end.new
29
- end
30
- context "right class" do
31
- it "fails" do
32
- record.should_not be_a_new(record.class)
33
- end
34
- end
35
- context "wrong class" do
36
- it "fails" do
37
- record.should_not be_a_new(String)
38
- end
39
- end
40
- end
41
-
42
- describe "#with" do
43
- context "right class and new record" do
44
- let(:record) do
45
- Class.new do
46
- def initialize(attributes)
47
- @attributes = attributes
48
- end
49
-
50
- def attributes
51
- @attributes.stringify_keys
52
- end
53
-
54
- def new_record?; true; end
55
- end.new(:foo => 'foo', :bar => 'bar')
56
- end
57
-
58
- context "all attributes same" do
59
- it "passes" do
60
- record.should be_a_new(record.class).with(:foo => 'foo', :bar => 'bar')
61
- end
62
- end
63
-
64
- context "one attribute same" do
65
- it "passes" do
66
- record.should be_a_new(record.class).with(:foo => 'foo')
67
- end
68
- end
69
-
70
- context "no attributes same" do
71
- it "fails" do
72
- expect {
73
- record.should be_a_new(record.class).with(:zoo => 'zoo', :car => 'car')
74
- }.to raise_error {|e|
75
- e.message.should match(/attributes {.*} were not set on #{record.inspect}/)
76
- e.message.should match(/"zoo"=>"zoo"/)
77
- e.message.should match(/"car"=>"car"/)
78
- }
79
- end
80
- end
81
-
82
- context "one attribute value not the same" do
83
- it "fails" do
84
- expect {
85
- record.should be_a_new(record.class).with(:foo => 'bar')
86
- }.to raise_error(
87
- %Q(attribute {"foo"=>"bar"} was not set on #{record.inspect})
88
- )
89
- end
90
- end
91
- end
92
-
93
- context "wrong class and existing record" do
94
- let(:record) do
95
- Class.new do
96
- def initialize(attributes)
97
- @attributes = attributes
98
- end
99
-
100
- def attributes
101
- @attributes.stringify_keys
102
- end
103
-
104
- def new_record?; false; end
105
- end.new(:foo => 'foo', :bar => 'bar')
106
- end
107
-
108
- context "all attributes same" do
109
- it "fails" do
110
- expect {
111
- record.should be_a_new(String).with(:foo => 'foo', :bar => 'bar')
112
- }.to raise_error(
113
- "expected #{record.inspect} to be a new String"
114
- )
115
- end
116
- end
117
-
118
- context "no attributes same" do
119
- it "fails" do
120
- expect {
121
- record.should be_a_new(String).with(:zoo => 'zoo', :car => 'car')
122
- }.to raise_error {|e|
123
- e.message.should match(/expected #{record.inspect} to be a new String and attributes {.*} were not set on #{record.inspect}/)
124
- e.message.should match(/"zoo"=>"zoo"/)
125
- e.message.should match(/"car"=>"car"/)
126
- }
127
- end
128
- end
129
-
130
- context "one attribute value not the same" do
131
- it "fails" do
132
- expect {
133
- record.should be_a_new(String).with(:foo => 'bar')
134
- }.to raise_error(
135
- "expected #{record.inspect} to be a new String and " +
136
- %Q(attribute {"foo"=>"bar"} was not set on #{record.inspect})
137
- )
138
- end
139
- end
140
- end
141
- end
142
- end
@@ -1,33 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "be_new_record" do
4
- include RSpec::Rails::Matchers
5
-
6
- context "un-persisted record" do
7
- let(:record) { double('record', :persisted? => false) }
8
-
9
- it "passes" do
10
- record.should be_new_record
11
- end
12
-
13
- it "fails with custom failure message" do
14
- expect {
15
- expect(record).not_to be_new_record
16
- }.to raise_exception(/expected .* to be persisted, but was a new record/)
17
- end
18
- end
19
-
20
- context "persisted record" do
21
- let(:record) { double('record', :persisted? => true) }
22
-
23
- it "fails" do
24
- record.should_not be_new_record
25
- end
26
-
27
- it "fails with custom failure message" do
28
- expect {
29
- expect(record).to be_new_record
30
- }.to raise_exception(/expected .* to be a new record, but was persisted/)
31
- end
32
- end
33
- end
@@ -1,41 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "be_routable" do
4
- include RSpec::Rails::Matchers::RoutingMatchers
5
- attr_reader :routes
6
-
7
- before { @routes = double("routes") }
8
-
9
- context "with should" do
10
- it "passes if routes recognize the path" do
11
- routes.stub(:recognize_path) { {} }
12
- expect do
13
- {:get => "/a/path"}.should be_routable
14
- end.to_not raise_error
15
- end
16
-
17
- it "fails if routes do not recognize the path" do
18
- routes.stub(:recognize_path) { raise ActionController::RoutingError.new('ignore') }
19
- expect do
20
- {:get => "/a/path"}.should be_routable
21
- end.to raise_error(/expected \{:get=>"\/a\/path"\} to be routable/)
22
- end
23
- end
24
-
25
- context "with should_not" do
26
-
27
- it "passes if routes do not recognize the path" do
28
- routes.stub(:recognize_path) { raise ActionController::RoutingError.new('ignore') }
29
- expect do
30
- {:get => "/a/path"}.should_not be_routable
31
- end.to_not raise_error
32
- end
33
-
34
- it "fails if routes recognize the path" do
35
- routes.stub(:recognize_path) { {:controller => "foo"} }
36
- expect do
37
- {:get => "/a/path"}.should_not be_routable
38
- end.to raise_error(/expected \{:get=>"\/a\/path"\} not to be routable, but it routes to \{:controller=>"foo"\}/)
39
- end
40
- end
41
- end
@@ -1,44 +0,0 @@
1
- require "spec_helper"
2
- require 'active_support/all'
3
- require 'rspec/rails/matchers/be_valid'
4
-
5
- describe "be_valid matcher" do
6
- include RSpec::Rails::Matchers
7
-
8
- class Post
9
- include ActiveModel::Validations
10
- attr_accessor :title
11
- validates_presence_of :title
12
- end
13
-
14
- let(:post) { Post.new }
15
-
16
- it "includes the error messages in the failure message" do
17
- expect {
18
- expect(post).to be_valid
19
- }.to raise_exception(/Title can't be blank/)
20
- end
21
-
22
- it "includes a failure message for the negative case" do
23
- post.stub(:valid?) { true }
24
- expect {
25
- expect(post).not_to be_valid
26
- }.to raise_exception(/expected .* not to be valid/)
27
- end
28
-
29
- it "uses a custom failure message if provided" do
30
- expect {
31
- expect(post).to be_valid, "Post was not valid!"
32
- }.to raise_exception(/Post was not valid!/)
33
- end
34
-
35
- it "includes the validation context if provided" do
36
- post.should_receive(:valid?).with(:create) { true }
37
- expect(post).to be_valid(:create)
38
- end
39
-
40
- it "does not include the validation context if not provided" do
41
- post.should_receive(:valid?).with(no_args) { true }
42
- expect(post).to be_valid
43
- end
44
- end
@@ -1,38 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe "error_on" do
4
- it "provides a description including the name of what the error is on" do
5
- have(1).error_on(:whatever).description.should == "have 1 error on :whatever"
6
- end
7
-
8
- it "provides a failure message including the number actually given" do
9
- lambda {
10
- [].should have(1).error_on(:whatever)
11
- }.should raise_error("expected 1 error on :whatever, got 0")
12
- end
13
- end
14
-
15
- describe "errors_on" do
16
- it "provides a description including the name of what the error is on" do
17
- have(2).errors_on(:whatever).description.should == "have 2 errors on :whatever"
18
- end
19
-
20
- it "provides a failure message including the number actually given" do
21
- lambda {
22
- [1].should have(3).errors_on(:whatever)
23
- }.should raise_error("expected 3 errors on :whatever, got 1")
24
- end
25
- end
26
-
27
- describe "have something other than error_on or errors_on" do
28
- it "has a standard rspec failure message" do
29
- lambda {
30
- [1,2,3].should have(2).elements
31
- }.should raise_error("expected 2 elements, got 3")
32
- end
33
-
34
- it "has a standard rspec description" do
35
- have(2).elements.description.should == "have 2 elements"
36
- end
37
- end
38
-
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class CollectionOwner < ActiveRecord::Base
4
- connection.execute <<-SQL
5
- CREATE TABLE collection_owners (
6
- id integer PRIMARY KEY AUTOINCREMENT
7
- )
8
- SQL
9
- has_many :associated_items do
10
- def has_some_quality?; true end
11
- end
12
- end
13
-
14
- class AssociatedItem < ActiveRecord::Base
15
- connection.execute <<-SQL
16
- CREATE TABLE associated_items (
17
- id integer PRIMARY KEY AUTOINCREMENT,
18
- collection_owner_id integer
19
- )
20
- SQL
21
- belongs_to :collection_owner
22
- end
23
-
24
- describe "should have_xxx" do
25
- it "works with ActiveRecord::Associations::CollectionProxy" do
26
- owner = CollectionOwner.new
27
- owner.associated_items.should have_some_quality
28
- end
29
- end
@@ -1,93 +0,0 @@
1
- require "spec_helper"
2
-
3
- %w[have_rendered render_template].each do |template_expectation|
4
- describe template_expectation do
5
- include RSpec::Rails::Matchers::RenderTemplate
6
- let(:response) { ActionController::TestResponse.new }
7
-
8
- context "given a hash" do
9
- it "delegates to assert_template" do
10
- self.should_receive(:assert_template).with({:this => "hash"}, "this message")
11
- expect("response").to send(template_expectation, {:this => "hash"}, "this message")
12
- end
13
- end
14
-
15
- context "given a string" do
16
- it "delegates to assert_template" do
17
- self.should_receive(:assert_template).with("this string", "this message")
18
- expect("response").to send(template_expectation, "this string", "this message")
19
- end
20
- end
21
-
22
- context "given a symbol" do
23
- it "converts to_s and delegates to assert_template" do
24
- self.should_receive(:assert_template).with("template_name", "this message")
25
- expect("response").to send(template_expectation, :template_name, "this message")
26
- end
27
- end
28
-
29
- context "with should" do
30
- context "when assert_template passes" do
31
- it "passes" do
32
- def assert_template(*); end
33
- expect do
34
- expect(response).to send(template_expectation, "template_name")
35
- end.to_not raise_exception
36
- end
37
- end
38
-
39
- context "when assert_template fails" do
40
- it "uses failure message from assert_template" do
41
- def assert_template(*)
42
- raise ActiveSupport::TestCase::Assertion.new("this message")
43
- end
44
- expect do
45
- expect(response).to send(template_expectation, "template_name")
46
- end.to raise_error("this message")
47
- end
48
- end
49
-
50
- context "when fails due to some other exception" do
51
- it "raises that exception" do
52
- def assert_template(*)
53
- raise "oops"
54
- end
55
- expect do
56
- expect(response).to send(template_expectation, "template_name")
57
- end.to raise_exception("oops")
58
- end
59
- end
60
- end
61
-
62
- context "with should_not" do
63
- context "when assert_template fails" do
64
- it "passes" do
65
- def assert_template(*)
66
- raise ActiveSupport::TestCase::Assertion.new("this message")
67
- end
68
- expect do
69
- expect(response).to_not send(template_expectation, "template_name")
70
- end.to_not raise_exception
71
- end
72
- end
73
-
74
- context "when assert_template passes" do
75
- it "fails with custom failure message" do
76
- def assert_template(*); end
77
- expect do
78
- expect(response).to_not send(template_expectation, "template_name")
79
- end.to raise_error(/expected not to render \"template_name\", but did/)
80
- end
81
- end
82
-
83
- context "when fails due to some other exception" do
84
- it "raises that exception" do
85
- def assert_template(*); raise "oops"; end
86
- expect do
87
- expect(response).to_not send(template_expectation, "template_name")
88
- end.to raise_exception("oops")
89
- end
90
- end
91
- end
92
- end
93
- end