rails_kwargs_testing 0.1.1 → 0.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e2c15909ec85b17d1eb66d81caf578d5a0fec79
4
- data.tar.gz: 7963db1e71557125cdfa1819e6177729f0b28347
3
+ metadata.gz: 29d0bac64c9bc4345782c3debc41745fda7d8449
4
+ data.tar.gz: efda1581cef21bdd007540051937bc13dacb6a0d
5
5
  SHA512:
6
- metadata.gz: a9d4f952dfee4b64f0c4af40f6c89b1f1659e4392eff588508d32187a44d76e635d4e0c3f1aa34f916bcc4b3de9ee5983c78c52b407648c538710fc7328f35dc
7
- data.tar.gz: e717653097d7f3727504536140dfe6403d827d019bb25e02c4b8a3e31d95704274c6c08148e61001c03a8019010e95c18101354c4c8fb4aae9b8909dc151e82e
6
+ metadata.gz: a05c2fa0c46fe0c35a679bc626a0cd85245a23b0f339e690e7e509f693fc20f71d9a8de6daf74029700b2e37024d38ed878e57458368770817464b5ed2f60e18
7
+ data.tar.gz: 28be84356d263c943b6955c1a2e8f6ae8b3bcd28971acad2aa1934bc467f90a463b839f07c177d98b8759f521fb0e16aee86c5019a8ca3fa62111c1483f84c5d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v0.1.2
2
+
3
+ - Add `:xhr` option to controller methods
4
+
1
5
  ## v0.1.1
2
6
 
3
7
  - Fix bug: remove non-existent `#head_via_redirect` method
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_kwargs_testing (0.1.0)
4
+ rails_kwargs_testing (0.1.1)
5
5
  rails (< 5)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -25,38 +25,31 @@ Or install it yourself as:
25
25
  gem install rails_kwargs_testing
26
26
  ```
27
27
 
28
- ## Minitest
28
+ ## For controller tests
29
29
 
30
- ### ActionController::TestCase
30
+ Prepend RailsKwargsTesting::ControllerMethods. Supported options are:
31
+
32
+ - :flash
33
+ - :format
34
+ - :params
35
+ - :session
36
+ - :xhr
37
+
38
+ ### Minitest
31
39
 
32
40
  ```ruby
33
41
  class ArticlesControllerTest < ::ActionController::TestCase
34
42
  prepend ::RailsKwargsTesting::ControllerMethods
35
43
 
36
44
  def test_create
45
+ # `post :create, name: "Hello, World!"` in Rails 4
37
46
  post :create, params: { name: "Hello, World!" }
38
47
  assert_equal 200, response.status
39
48
  end
40
49
  end
41
50
  ```
42
51
 
43
- ### ActionDispatch::IntegrationTest
44
-
45
- ```ruby
46
- class CreateArticleTest < ActionDispatch::IntegrationTest
47
- prepend ::RailsKwargsTesting::RequestMethods
48
-
49
- def test_create_article
50
- # `post "/articles", name: "Hello, World!"` in Rails 4
51
- post "/articles", params: { name: "Hello, World!" }
52
- assert_equal 200, response.status
53
- end
54
- end
55
- ```
56
-
57
- ## RSpec
58
-
59
- ### Controller-specs
52
+ ### RSpec
60
53
 
61
54
  ```ruby
62
55
  RSpec.describe ArticlesController do
@@ -73,7 +66,29 @@ RSpec.describe ArticlesController do
73
66
  end
74
67
  ```
75
68
 
76
- ### Request-specs
69
+ ## For request tests
70
+
71
+ Prepend RailsKwargsTesting::RequestMethods. Supported options are:
72
+
73
+ - :env
74
+ - :headers
75
+ - :params
76
+
77
+ ### Minitest
78
+
79
+ ```ruby
80
+ class CreateArticleTest < ActionDispatch::IntegrationTest
81
+ prepend ::RailsKwargsTesting::RequestMethods
82
+
83
+ def test_create_article
84
+ # `post "/articles", name: "Hello, World!"` in Rails 4
85
+ post "/articles", params: { name: "Hello, World!" }
86
+ assert_equal 200, response.status
87
+ end
88
+ end
89
+ ```
90
+
91
+ ### RSpec
77
92
 
78
93
  ```ruby
79
94
  RSpec.describe "POST /articles" do
@@ -8,11 +8,18 @@ module RailsKwargsTesting
8
8
  post
9
9
  put
10
10
  ].each do |method_name|
11
- define_method(method_name) do |path, flash: nil, format: nil, params: nil, session: nil|
11
+ define_method(method_name) do |action, flash: nil, format: nil, params: nil, session: nil, xhr: nil|
12
12
  if format
13
13
  params = (params || {}).merge(format: format)
14
14
  end
15
- super(path, params, session, flash)
15
+ if xhr
16
+ insert_xhr_headers
17
+ end
18
+ super(action, params, session, flash).tap do
19
+ if xhr
20
+ reset_xhr_headers
21
+ end
22
+ end
16
23
  end
17
24
  end
18
25
 
@@ -21,13 +28,23 @@ module RailsKwargsTesting
21
28
  xml_http_request
22
29
  ].each do |method_name|
23
30
  define_method(method_name) do |request_method, action, flash: nil, format: nil, params: nil, session: nil|
24
- @request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
25
- @request.env['HTTP_ACCEPT'] ||= [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
31
+ insert_xhr_headers
26
32
  __send__(request_method, action, flash: flash, format: format, params: params, session: session).tap do
27
- @request.env.delete 'HTTP_X_REQUESTED_WITH'
28
- @request.env.delete 'HTTP_ACCEPT'
33
+ reset_xhr_headers
29
34
  end
30
35
  end
31
36
  end
37
+
38
+ private
39
+
40
+ def insert_xhr_headers
41
+ @request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest'
42
+ @request.env['HTTP_ACCEPT'] ||= [Mime::JS, Mime::HTML, Mime::XML, 'text/xml', Mime::ALL].join(', ')
43
+ end
44
+
45
+ def reset_xhr_headers
46
+ @request.env.delete 'HTTP_X_REQUESTED_WITH'
47
+ @request.env.delete 'HTTP_ACCEPT'
48
+ end
32
49
  end
33
50
  end
@@ -1,3 +1,3 @@
1
1
  module RailsKwargsTesting
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_kwargs_testing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - r7kamura
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-21 00:00:00.000000000 Z
11
+ date: 2018-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails