rails-forward_compatible_controller_tests 2.3.2 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +17 -2
- data/Rakefile +5 -2
- data/lib/rails/forward_compatible_controller_tests.rb +6 -2
- data/lib/rails/forward_compatible_controller_tests/version.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c1889c50e09fc0c07f49f045fae935eb895de92bbdef352557644a9206c68fe4
|
4
|
+
data.tar.gz: 604cba70d018fb92869bd54ea7555227bcc36b4253059a62175bbd71fb6cc882
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ad5fbafa83c703986e24c2e4a166dff56bc7ac0c986ddb392f158949d61427a32df6ac3aa0465ca0c573f557f1b28e940c967fa006b5075fe12dc0a1fa508a0
|
7
|
+
data.tar.gz: c381f1d167748da53d6793cadcd6f4cf9d5b5fb63de3db37035695713dfa4f4b1c110285f4cb2b5d45cdeda0ebfc9305d88bbe8cc73808e14d438952644484a8
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Rails::ForwardCompatibleControllerTests
|
2
2
|
|
3
|
-
Backport Rails 5 style controller/integration testing syntax using kwargs to Rails 4
|
3
|
+
Backport Rails 5 style controller/integration testing syntax using kwargs to Rails 4. Supports minitest and rspec.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -24,6 +24,13 @@ At the appropriate spot in your `test_helper.rb`, `spec_helper.rb`, or similar f
|
|
24
24
|
require 'rails/forward_compatible_controller_tests'
|
25
25
|
```
|
26
26
|
|
27
|
+
If using rspec, add the following lines to your rspec config:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
config.include Rails::ForwardCompatibleControllerTests, type: :controller
|
31
|
+
config.include Rails::ForwardCompatibleControllerTests, type: :request
|
32
|
+
```
|
33
|
+
|
27
34
|
## Usage
|
28
35
|
|
29
36
|
Allows you to simultaneously use the old and new syntax while making HTTP calls to your controllers
|
@@ -65,7 +72,15 @@ to make the switch to Rails 5.
|
|
65
72
|
|
66
73
|
## Development
|
67
74
|
|
68
|
-
After checking out the repo, run `bin/setup` to install dependencies.
|
75
|
+
After checking out the repo, run `bin/setup` to install dependencies.
|
76
|
+
|
77
|
+
This library uses [Appraisal](https://github.com/thoughtbot/appraisal) to run specs in Rails 4 and 5:
|
78
|
+
- `bundle exec appraisal actionpack-4.2 rake`.
|
79
|
+
- `bundle exec appraisal actionpack-5.0 rake`.
|
80
|
+
|
81
|
+
The library is a no-op when used with Rails 5 (it doesn't affect the implementation of controller tests). You can run the tests in Rails 5 mode to ensure that the behaviour native to Rails 5 is the same as the behaviour in Rails 4 with the library.
|
82
|
+
|
83
|
+
You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
69
84
|
|
70
85
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
71
86
|
|
data/Rakefile
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rake/testtask"
|
3
|
+
require "rspec/core/rake_task"
|
3
4
|
|
4
|
-
Rake::TestTask.new(:
|
5
|
+
Rake::TestTask.new(:test_minitest) do |t|
|
5
6
|
t.libs << "test"
|
6
7
|
t.libs << "lib"
|
7
8
|
t.test_files = FileList['test/**/*_test.rb']
|
8
9
|
end
|
9
10
|
|
10
|
-
|
11
|
+
RSpec::Core::RakeTask.new(:test_rspec)
|
12
|
+
|
13
|
+
task :default => [:test_minitest, :test_rspec]
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require "rails/forward_compatible_controller_tests/version"
|
2
|
-
require "rails/test_help"
|
3
2
|
|
4
3
|
module Rails
|
5
4
|
module ForwardCompatibleControllerTests
|
@@ -45,7 +44,7 @@ module Rails
|
|
45
44
|
|
46
45
|
%i[get post patch put head delete].each do |method|
|
47
46
|
define_method(method) do |action, *args|
|
48
|
-
controller_test = self.class < ActionController::TestCase
|
47
|
+
controller_test = self.class.try(:metadata)&.[](:type) == :controller || self.class < ActionController::TestCase
|
49
48
|
request_params = args[0]&.dup
|
50
49
|
request_session = args[1]&.dup if controller_test
|
51
50
|
request_headers = args[1]&.dup unless controller_test
|
@@ -62,6 +61,11 @@ module Rails
|
|
62
61
|
request_headers = request_params.delete(:headers) || request_headers unless controller_test
|
63
62
|
request_flash = request_params.delete(:flash) || request_flash if controller_test
|
64
63
|
request_params.merge!(request_params.delete(:params) || {})
|
64
|
+
elsif request_params[:params].is_a?(String) && !controller_test
|
65
|
+
request_flash = nil
|
66
|
+
request_session = nil
|
67
|
+
request_headers = request_params.delete(:headers)
|
68
|
+
request_params = request_params.delete(:params) || ""
|
65
69
|
elsif request_params.key?(:headers) && !controller_test
|
66
70
|
request_flash = nil
|
67
71
|
request_session = nil
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-forward_compatible_controller_tests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chad Shaffer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,6 +72,20 @@ dependencies:
|
|
72
72
|
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '5.1'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rspec-rails
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - '='
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 3.8.0
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - '='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 3.8.0
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
90
|
name: appraisal
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
152
|
version: '0'
|
139
153
|
requirements: []
|
140
154
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.6
|
155
|
+
rubygems_version: 2.7.6
|
142
156
|
signing_key:
|
143
157
|
specification_version: 4
|
144
158
|
summary: Back-porting Rails 5 controller & integration tests into Rails 4
|