rails_kwargs_testing 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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