rspec-rails 2.13.1 → 2.13.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +12 -1
  3. data/README.md +1 -1
  4. data/lib/generators/rspec.rb +1 -2
  5. data/lib/generators/rspec/install/install_generator.rb +0 -2
  6. data/lib/generators/rspec/install/templates/spec/spec_helper.rb.tt +1 -1
  7. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +1 -1
  8. data/lib/rspec/rails.rb +1 -1
  9. data/lib/rspec/rails/example/controller_example_group.rb +4 -2
  10. data/lib/rspec/rails/example/rails_example_group.rb +1 -2
  11. data/lib/rspec/rails/example/view_example_group.rb +1 -1
  12. data/lib/rspec/rails/fixture_support.rb +1 -1
  13. data/lib/rspec/rails/version.rb +1 -1
  14. metadata +5 -182
  15. data/features/Autotest.md +0 -24
  16. data/features/Generators.md +0 -8
  17. data/features/GettingStarted.md +0 -84
  18. data/features/README.md +0 -56
  19. data/features/RailsVersions.md +0 -4
  20. data/features/Transactions.md +0 -84
  21. data/features/Upgrade.md +0 -121
  22. data/features/controller_specs/Cookies.md +0 -57
  23. data/features/controller_specs/README.md +0 -45
  24. data/features/controller_specs/anonymous_controller.feature +0 -378
  25. data/features/controller_specs/bypass_rescue.feature +0 -75
  26. data/features/controller_specs/controller_spec.feature +0 -35
  27. data/features/controller_specs/engine_routes.feature +0 -51
  28. data/features/controller_specs/isolation_from_views.feature +0 -87
  29. data/features/controller_specs/render_views.feature +0 -114
  30. data/features/feature_specs/feature_spec.feature +0 -34
  31. data/features/helper_specs/helper_spec.feature +0 -122
  32. data/features/mailer_specs/url_helpers.feature +0 -38
  33. data/features/matchers/README.md +0 -18
  34. data/features/matchers/new_record_matcher.feature +0 -41
  35. data/features/matchers/redirect_to_matcher.feature +0 -40
  36. data/features/matchers/relation_match_array.feature +0 -22
  37. data/features/matchers/render_template_matcher.feature +0 -49
  38. data/features/mocks/mock_model.feature +0 -147
  39. data/features/mocks/stub_model.feature +0 -58
  40. data/features/model_specs/README.md +0 -21
  41. data/features/model_specs/errors_on.feature +0 -51
  42. data/features/model_specs/transactional_examples.feature +0 -109
  43. data/features/request_specs/request_spec.feature +0 -49
  44. data/features/routing_specs/README.md +0 -16
  45. data/features/routing_specs/be_routable_matcher.feature +0 -80
  46. data/features/routing_specs/engine_routes.feature +0 -38
  47. data/features/routing_specs/named_routes.feature +0 -18
  48. data/features/routing_specs/route_to_matcher.feature +0 -90
  49. data/features/step_definitions/additional_cli_steps.rb +0 -4
  50. data/features/step_definitions/model_steps.rb +0 -3
  51. data/features/support/env.rb +0 -53
  52. data/features/support/rails_versions.rb +0 -4
  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/lib/rspec/rails/rails_version.rb +0 -17
  57. data/spec/autotest/rails_rspec2_spec.rb +0 -36
  58. data/spec/generators/rspec/controller/controller_generator_spec.rb +0 -97
  59. data/spec/generators/rspec/helper/helper_generator_spec.rb +0 -30
  60. data/spec/generators/rspec/install/install_generator_spec.rb +0 -30
  61. data/spec/generators/rspec/integration/integration_generator_spec.rb +0 -44
  62. data/spec/generators/rspec/mailer/mailer_generator_spec.rb +0 -48
  63. data/spec/generators/rspec/model/model_generator_spec.rb +0 -52
  64. data/spec/generators/rspec/observer/observer_generator_spec.rb +0 -21
  65. data/spec/generators/rspec/scaffold/scaffold_generator_spec.rb +0 -138
  66. data/spec/generators/rspec/view/view_generator_spec.rb +0 -41
  67. data/spec/rspec/rails/assertion_adapter_spec.rb +0 -28
  68. data/spec/rspec/rails/assertion_delegator_spec.rb +0 -43
  69. data/spec/rspec/rails/configuration_spec.rb +0 -26
  70. data/spec/rspec/rails/deprecations_spec.rb +0 -18
  71. data/spec/rspec/rails/example/controller_example_group_spec.rb +0 -100
  72. data/spec/rspec/rails/example/feature_example_group_spec.rb +0 -56
  73. data/spec/rspec/rails/example/helper_example_group_spec.rb +0 -64
  74. data/spec/rspec/rails/example/mailer_example_group_spec.rb +0 -21
  75. data/spec/rspec/rails/example/model_example_group_spec.rb +0 -15
  76. data/spec/rspec/rails/example/request_example_group_spec.rb +0 -17
  77. data/spec/rspec/rails/example/routing_example_group_spec.rb +0 -32
  78. data/spec/rspec/rails/example/view_example_group_spec.rb +0 -220
  79. data/spec/rspec/rails/extensions/active_model/errors_on_spec.rb +0 -23
  80. data/spec/rspec/rails/extensions/active_record/base_spec.rb +0 -42
  81. data/spec/rspec/rails/extensions/active_record/records_spec.rb +0 -9
  82. data/spec/rspec/rails/fixture_support_spec.rb +0 -17
  83. data/spec/rspec/rails/matchers/be_a_new_spec.rb +0 -142
  84. data/spec/rspec/rails/matchers/be_new_record_spec.rb +0 -33
  85. data/spec/rspec/rails/matchers/be_routable_spec.rb +0 -41
  86. data/spec/rspec/rails/matchers/be_valid_spec.rb +0 -44
  87. data/spec/rspec/rails/matchers/errors_on_spec.rb +0 -38
  88. data/spec/rspec/rails/matchers/has_spec.rb +0 -29
  89. data/spec/rspec/rails/matchers/have_rendered_spec.rb +0 -93
  90. data/spec/rspec/rails/matchers/redirect_to_spec.rb +0 -80
  91. data/spec/rspec/rails/matchers/relation_match_array_spec.rb +0 -31
  92. data/spec/rspec/rails/matchers/route_to_spec.rb +0 -151
  93. data/spec/rspec/rails/minitest_lifecycle_adapter_spec.rb +0 -22
  94. data/spec/rspec/rails/mocks/mock_model_spec.rb +0 -379
  95. data/spec/rspec/rails/mocks/stub_model_spec.rb +0 -154
  96. data/spec/rspec/rails/rails_version_spec.rb +0 -29
  97. data/spec/rspec/rails/setup_and_teardown_adapter_spec.rb +0 -32
  98. data/spec/rspec/rails/view_rendering_spec.rb +0 -111
  99. data/spec/spec_helper.rb +0 -31
  100. data/spec/support/ar_classes.rb +0 -42
  101. data/spec/support/helpers.rb +0 -20
  102. data/spec/support/matchers.rb +0 -9
  103. data/spec/support/null_object.rb +0 -6
@@ -1,75 +0,0 @@
1
- Feature: bypass rescue
2
-
3
- Use `bypass_rescue` to bypass both Rails' default handling of errors in
4
- controller actions, and any custom handling declared with a `rescue_from`
5
- statement.
6
-
7
- This lets you specify details of the exception being raised, regardless of
8
- how it might be handled upstream.
9
-
10
- Background:
11
- Given a file named "spec/controllers/gadgets_controller_spec_context.rb" with:
12
- """ruby
13
- class AccessDenied < StandardError; end
14
-
15
- class ApplicationController < ActionController::Base
16
- rescue_from AccessDenied, :with => :access_denied
17
-
18
- private
19
-
20
- def access_denied
21
- redirect_to "/401.html"
22
- end
23
- end
24
- """
25
-
26
- Scenario: standard exception handling using `rescue_from`
27
- Given a file named "spec/controllers/gadgets_controller_spec.rb" with:
28
- """ruby
29
- require "spec_helper"
30
-
31
- require 'controllers/gadgets_controller_spec_context'
32
-
33
- describe GadgetsController do
34
- before do
35
- def controller.index
36
- raise AccessDenied
37
- end
38
- end
39
-
40
- describe "index" do
41
- it "redirects to the /401.html page" do
42
- get :index
43
- expect(response).to redirect_to("/401.html")
44
- end
45
- end
46
- end
47
- """
48
- When I run `rspec spec/controllers/gadgets_controller_spec.rb`
49
- Then the examples should all pass
50
-
51
- Scenario: bypass `rescue_from` handling with `bypass_rescue`
52
- Given a file named "spec/controllers/gadgets_controller_spec.rb" with:
53
- """ruby
54
- require "spec_helper"
55
-
56
- require 'controllers/gadgets_controller_spec_context'
57
-
58
- describe GadgetsController do
59
- before do
60
- def controller.index
61
- raise AccessDenied
62
- end
63
- end
64
-
65
- describe "index" do
66
- it "raises AccessDenied" do
67
- bypass_rescue
68
- expect { get :index }.to raise_error(AccessDenied)
69
- end
70
- end
71
- end
72
- """
73
- When I run `rspec spec/controllers/gadgets_controller_spec.rb`
74
- Then the examples should all pass
75
-
@@ -1,35 +0,0 @@
1
- Feature: controller spec
2
-
3
- Scenario: simple passing example
4
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
5
- """ruby
6
- require "spec_helper"
7
-
8
- describe WidgetsController do
9
- describe "GET index" do
10
- it "has a 200 status code" do
11
- get :index
12
- expect(response.status).to eq(200)
13
- end
14
- end
15
- end
16
- """
17
- When I run `rspec spec`
18
- Then the example should pass
19
-
20
- Scenario: controller is exposed to global before hooks
21
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
22
- """ruby
23
- require "spec_helper"
24
-
25
- RSpec.configure {|c| c.before { expect(controller).not_to be_nil }}
26
-
27
- describe WidgetsController do
28
- describe "GET index" do
29
- it "doesn't matter" do
30
- end
31
- end
32
- end
33
- """
34
- When I run `rspec spec`
35
- Then the example should pass
@@ -1,51 +0,0 @@
1
- Feature: engine routes for controllers
2
-
3
- Controller specs can specify the routeset that will be used for the example
4
- group. This is most useful when testing Rails engines.
5
-
6
- @unsupported-on-rails-3-0
7
- Scenario: specify engine route
8
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
9
- """ruby
10
- require "spec_helper"
11
-
12
- # A very simple Rails engine
13
- module MyEngine
14
- class Engine < ::Rails::Engine
15
- isolate_namespace MyEngine
16
- end
17
-
18
- Engine.routes.draw do
19
- resources :widgets, :only => [:show] do
20
- get :random, :on => :collection
21
- end
22
- end
23
-
24
- class WidgetsController < ::ActionController::Base
25
- def random
26
- @random_widget = Widget.all.shuffle.first
27
- redirect_to widget_path(@random_widget)
28
- end
29
-
30
- def show
31
- @widget = Widget.find(params[:id])
32
- render :text => @widget.name
33
- end
34
- end
35
- end
36
-
37
- describe MyEngine::WidgetsController do
38
- routes { MyEngine::Engine.routes }
39
-
40
- it "redirects to a random widget" do
41
- widget1 = Widget.create!(:name => "Widget 1")
42
- widget2 = Widget.create!(:name => "Widget 2")
43
-
44
- get :random
45
- expect(response).to be_redirect
46
- expect(response).to redirect_to(assigns(:random_widget))
47
- end
48
- end
49
- """
50
- When I run `rspec spec`
51
- Then the examples should all pass
@@ -1,87 +0,0 @@
1
- Feature: views are stubbed by default
2
-
3
- By default, controller specs stub views with a template that renders an empty
4
- string instead of the views in the app. This allows you specify which view
5
- template an action should try to render regardless of whether the template
6
- compiles cleanly.
7
-
8
- NOTE: unlike rspec-rails-1.x, the real template must exist.
9
-
10
- Scenario: expect template that is rendered by controller action (passes)
11
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
12
- """ruby
13
- require "spec_helper"
14
-
15
- describe WidgetsController do
16
- describe "index" do
17
- it "renders the index template" do
18
- get :index
19
- expect(response).to render_template("index")
20
- expect(response.body).to eq ""
21
- end
22
- it "renders the widgets/index template" do
23
- get :index
24
- expect(response).to render_template("widgets/index")
25
- expect(response.body).to eq ""
26
- end
27
- end
28
- end
29
- """
30
- When I run `rspec spec`
31
- Then the examples should all pass
32
-
33
- Scenario: expect template that is not rendered by controller action (fails)
34
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
35
- """ruby
36
- require "spec_helper"
37
-
38
- describe WidgetsController do
39
- describe "index" do
40
- it "renders the 'new' template" do
41
- get :index
42
- expect(response).to render_template("new")
43
- end
44
- end
45
- end
46
- """
47
- When I run `rspec spec`
48
- Then the output should contain "1 example, 1 failure"
49
-
50
- Scenario: expect empty templates to render when view path is changed at runtime (passes)
51
- Given a file named "spec/controllers/things_controller_spec.rb" with:
52
- """ruby
53
- require "spec_helper"
54
-
55
- describe ThingsController do
56
- describe "custom_action" do
57
- it "renders an empty custom_action template" do
58
- controller.prepend_view_path 'app/views'
59
- controller.append_view_path 'app/views'
60
- get :custom_action
61
- expect(response).to render_template("custom_action")
62
- expect(response.body).to eq ""
63
- end
64
- end
65
- end
66
- """
67
- When I run `rspec spec`
68
- Then the examples should all pass
69
-
70
- Scenario: expect template to render the real template with render_views when view path is changed at runtime
71
- Given a file named "spec/controllers/things_controller_spec.rb" with:
72
- """ruby
73
- require "spec_helper"
74
-
75
- describe ThingsController do
76
- render_views
77
-
78
- it "renders the real custom_action template" do
79
- controller.prepend_view_path 'app/views'
80
- get :custom_action
81
- expect(response).to render_template("custom_action")
82
- expect(response.body).to match(/template for a custom action/)
83
- end
84
- end
85
- """
86
- When I run `rspec spec`
87
- Then the examples should all pass
@@ -1,114 +0,0 @@
1
- Feature: render_views
2
-
3
- You can tell a controller example group to render views with the
4
- `render_views` declaration in any individual group, or globally.
5
-
6
- Scenario: render_views directly in a single group
7
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
8
- """ruby
9
- require "spec_helper"
10
-
11
- describe WidgetsController do
12
- render_views
13
-
14
- describe "GET index" do
15
- it "says 'Listing widgets'" do
16
- get :index
17
- expect(response.body).to match /Listing widgets/m
18
- end
19
- end
20
- end
21
- """
22
- When I run `rspec spec`
23
- Then the examples should all pass
24
-
25
- Scenario: render_views on and off in nested groups
26
- Given a file named "spec/controllers/widgets_controller_spec.rb" with:
27
- """ruby
28
- require "spec_helper"
29
-
30
- describe WidgetsController do
31
- context "with render_views" do
32
- render_views
33
-
34
- describe "GET index" do
35
- it "renders the actual template" do
36
- get :index
37
- expect(response.body).to match /Listing widgets/m
38
- end
39
- end
40
-
41
- context "with render_views(false) nested in a group with render_views" do
42
- render_views false
43
-
44
- describe "GET index" do
45
- it "renders the RSpec generated template" do
46
- get :index
47
- expect(response.body).to eq("")
48
- end
49
- end
50
- end
51
- end
52
-
53
- context "without render_views" do
54
- describe "GET index" do
55
- it "renders the RSpec generated template" do
56
- get :index
57
- expect(response.body).to eq("")
58
- end
59
- end
60
- end
61
-
62
- context "with render_views again" do
63
- render_views
64
-
65
- describe "GET index" do
66
- it "renders the actual template" do
67
- get :index
68
- expect(response.body).to match /Listing widgets/m
69
- end
70
- end
71
- end
72
- end
73
- """
74
- When I run `rspec spec --order default --format documentation`
75
- Then the output should contain:
76
- """ruby
77
- WidgetsController
78
- with render_views
79
- GET index
80
- renders the actual template
81
- with render_views(false) nested in a group with render_views
82
- GET index
83
- renders the RSpec generated template
84
- without render_views
85
- GET index
86
- renders the RSpec generated template
87
- with render_views again
88
- GET index
89
- renders the actual template
90
- """
91
-
92
- Scenario: render_views globally
93
- Given a file named "spec/support/render_views.rb" with:
94
- """ruby
95
- RSpec.configure do |config|
96
- config.render_views
97
- end
98
- """
99
- And a file named "spec/controllers/widgets_controller_spec.rb" with:
100
- """ruby
101
- require "spec_helper"
102
-
103
- describe WidgetsController do
104
- describe "GET index" do
105
- it "renders the index template" do
106
- get :index
107
- expect(response.body).to match /Listing widgets/m
108
- end
109
- end
110
- end
111
- """
112
- When I run `rspec spec`
113
- Then the examples should all pass
114
-
@@ -1,34 +0,0 @@
1
- Feature: feature spec
2
-
3
- Feature specs are high-level tests meant to exercise slices of functionality
4
- through an application. They should drive the application only via its
5
- external interface, usually web pages.
6
-
7
- Feature specs require the [capybara](http://github.com/jnicklas/capybara)
8
- gem, version 2.0.0 or later. Refer to the [capybara API
9
- documentation](http://rubydoc.info/github/jnicklas/capybara/master) for more
10
- information on the methods and matchers that can be used in feature specs.
11
-
12
- The `feature` and `scenario` DSL correspond to `describe` and `it`,
13
- respectively. These methods are simply aliases that allow feature specs to
14
- read more as [customer tests](http://c2.com/cgi/wiki?CustomerTest) and
15
- [acceptance tests](http://c2.com/cgi/wiki?AcceptanceTest).
16
-
17
- Scenario: specify creating a Widget by driving the application with capybara
18
- Given a file named "spec/features/widget_management_spec.rb" with:
19
- """ruby
20
- require "spec_helper"
21
-
22
- feature "Widget management" do
23
- scenario "User creates a new widget" do
24
- visit "/widgets/new"
25
-
26
- fill_in "Name", :with => "My Widget"
27
- click_button "Create Widget"
28
-
29
- expect(page).to have_text("Widget was successfully created.")
30
- end
31
- end
32
- """
33
- When I run `rspec spec/features/widget_management_spec.rb`
34
- Then the example should pass
@@ -1,122 +0,0 @@
1
- Feature: helper spec
2
-
3
- Helper specs live in `spec/helpers`, or any example group with `:type =>
4
- :helper`.
5
-
6
- Helper specs expose a `helper` object, which includes the helper module being
7
- specified, the `ApplicationHelper` module (if there is one) and all of the
8
- helpers built into Rails. It does not include the other helper modules in
9
- your app.
10
-
11
- To access the helper methods you're specifying, simply call them directly
12
- on the `helper` object.
13
-
14
- NOTE: helper methods defined in controllers are not included.
15
-
16
- Scenario: helper method that returns a value
17
- Given a file named "spec/helpers/application_helper_spec.rb" with:
18
- """ruby
19
- require "spec_helper"
20
-
21
- describe ApplicationHelper do
22
- describe "#page_title" do
23
- it "returns the default title" do
24
- expect(helper.page_title).to eq("RSpec is your friend")
25
- end
26
- end
27
- end
28
- """
29
- And a file named "app/helpers/application_helper.rb" with:
30
- """ruby
31
- module ApplicationHelper
32
- def page_title
33
- "RSpec is your friend"
34
- end
35
- end
36
- """
37
- When I run `rspec spec/helpers/application_helper_spec.rb`
38
- Then the examples should all pass
39
-
40
- Scenario: helper method that accesses an instance variable
41
- Given a file named "spec/helpers/application_helper_spec.rb" with:
42
- """ruby
43
- require "spec_helper"
44
-
45
- describe ApplicationHelper do
46
- describe "#page_title" do
47
- it "returns the instance variable" do
48
- assign(:title, "My Title")
49
- expect(helper.page_title).to eql("My Title")
50
- end
51
- end
52
- end
53
- """
54
- And a file named "app/helpers/application_helper.rb" with:
55
- """ruby
56
- module ApplicationHelper
57
- def page_title
58
- @title || nil
59
- end
60
- end
61
- """
62
- When I run `rspec spec/helpers/application_helper_spec.rb`
63
- Then the examples should all pass
64
-
65
- Scenario: application helper is included in helper object
66
- Given a file named "spec/helpers/widgets_helper_spec.rb" with:
67
- """ruby
68
- require "spec_helper"
69
-
70
- describe WidgetsHelper do
71
- describe "#widget_title" do
72
- it "includes the app name" do
73
- assign(:title, "This Widget")
74
- expect(helper.widget_title).to eq("The App: This Widget")
75
- end
76
- end
77
- end
78
- """
79
- And a file named "app/helpers/application_helper.rb" with:
80
- """ruby
81
- module ApplicationHelper
82
- def app_name
83
- "The App"
84
- end
85
- end
86
- """
87
- And a file named "app/helpers/widgets_helper.rb" with:
88
- """ruby
89
- module WidgetsHelper
90
- def widget_title
91
- "#{app_name}: #{@title}"
92
- end
93
- end
94
- """
95
- When I run `rspec spec/helpers/widgets_helper_spec.rb`
96
- Then the examples should all pass
97
-
98
- Scenario: url helpers are defined
99
- Given a file named "spec/helpers/widgets_helper_spec.rb" with:
100
- """ruby
101
- require "spec_helper"
102
-
103
- describe WidgetsHelper do
104
- describe "#link_to_widget" do
105
- it "links to a widget using its name" do
106
- widget = Widget.create!(:name => "This Widget")
107
- expect(helper.link_to_widget(widget)).to include("This Widget")
108
- expect(helper.link_to_widget(widget)).to include(widget_path(widget))
109
- end
110
- end
111
- end
112
- """
113
- And a file named "app/helpers/widgets_helper.rb" with:
114
- """ruby
115
- module WidgetsHelper
116
- def link_to_widget(widget)
117
- link_to(widget.name, widget_path(widget))
118
- end
119
- end
120
- """
121
- When I run `rspec spec/helpers/widgets_helper_spec.rb`
122
- Then the examples should all pass