Skip to content

Commit b2b2e5d

Browse files
committed
Move install hooks to an install method.
1 parent c6f4a30 commit b2b2e5d

File tree

3 files changed

+40
-16
lines changed

3 files changed

+40
-16
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,19 @@ RSpec.configure do |config|
4040
end
4141
```
4242

43+
## Outside Rails
44+
45+
For projects and gems using controller tests outside of a Rails application,
46+
invoke the `Rails::Controller::Testing.install` method inside your test suite
47+
setup to include the required modules on controller test cases.
48+
49+
```ruby
50+
# test/test_helper.rb
51+
52+
require 'rails-controller-testing'
53+
Rails::Controller::Testing.install
54+
```
55+
4356
## Usage
4457

4558
### assigns

lib/rails-controller-testing.rb

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,8 @@
1-
require 'active_support/lazy_load_hooks'
2-
require 'rails/controller/testing/test_process'
3-
require 'rails/controller/testing/integration'
4-
require 'rails/controller/testing/template_assertions'
1+
require 'rails/controller/testing'
52
require 'rails/controller/testing/version'
63

74
class Rails::Controller::Testing::Railtie < Rails::Railtie
85
initializer "rails_controller_testing" do
9-
ActiveSupport.on_load(:action_controller) do
10-
ActionController::TestCase.include Rails::Controller::Testing::TestProcess
11-
ActionController::TestCase.include Rails::Controller::Testing::TemplateAssertions
12-
13-
ActionDispatch::IntegrationTest.include Rails::Controller::Testing::TemplateAssertions
14-
ActionDispatch::IntegrationTest.include Rails::Controller::Testing::Integration
15-
ActionDispatch::IntegrationTest.include Rails::Controller::Testing::TestProcess
16-
end
17-
18-
ActiveSupport.on_load(:action_view) do
19-
ActionView::TestCase.include Rails::Controller::Testing::TemplateAssertions
20-
end
6+
Rails::Controller::Testing.install
217
end
228
end

lib/rails/controller/testing.rb

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
require 'active_support/lazy_load_hooks'
2+
require 'rails/controller/testing/test_process'
3+
require 'rails/controller/testing/integration'
4+
require 'rails/controller/testing/template_assertions'
5+
6+
module Rails
7+
module Controller
8+
module Testing
9+
def self.install
10+
ActiveSupport.on_load(:action_controller) do
11+
ActionController::TestCase.include Rails::Controller::Testing::TestProcess
12+
ActionController::TestCase.include Rails::Controller::Testing::TemplateAssertions
13+
14+
ActionDispatch::IntegrationTest.include Rails::Controller::Testing::TemplateAssertions
15+
ActionDispatch::IntegrationTest.include Rails::Controller::Testing::Integration
16+
ActionDispatch::IntegrationTest.include Rails::Controller::Testing::TestProcess
17+
end
18+
19+
ActiveSupport.on_load(:action_view) do
20+
ActionView::TestCase.include Rails::Controller::Testing::TemplateAssertions
21+
end
22+
end
23+
end
24+
end
25+
end

0 commit comments

Comments
 (0)