wt-rspec-grape 0.1.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b826699625027393fa242acb0abac8b87736a4def0a9fedabc3672925e00c4d4
4
- data.tar.gz: a27da7ec28130a2f964375f58299849ce9ecdf6734017b8c44ae2630114c6225
3
+ metadata.gz: d335b8193d4ac649846cc892cefa101024e3cbb12c7c3298fb298e27af479fc3
4
+ data.tar.gz: c93816828f2c1ae7501991dc4d3e69528810d7de728c63dc44f3de8a4ec44ead
5
5
  SHA512:
6
- metadata.gz: f9456f1921d9bc2392f7d95eff2e07988739fcc153cf5f2bcf397579816529b32b12ffb2b65434f9d5c708f853f8a5b461ffb70085ba9554330b1377f0327559
7
- data.tar.gz: 9eb99f8f6a36b5cfd63e66fa7d302b2322aa3bfadbc73d90c4634dc8d2da2c96091187189a9fdae34cae4b39d5f168c5a6b86d398d6678e1b0ffcd029d10597d
6
+ metadata.gz: 73bd17120280ce221b3000eb820fba7c4910abfb3e8b7da46c547b50be0e582c6ef51bd0ada045cd3b0023fb815a7923b9a5e9218bcf98aa64fa3e366cbc772e
7
+ data.tar.gz: e7c0d79bdc99367f2d724b917659e3fff3e15b8e2d0d7c17455622d6351a4266c636c0b703b4458d35ee1a3caa998073723904c80bfba3c572b4ed2eb36c86c7
data/README.md CHANGED
@@ -50,6 +50,24 @@ Or use a symbol:
50
50
  describe MyAPI, :api do
51
51
  ```
52
52
 
53
+ ### Root API
54
+
55
+ By default requests are sent to `described_class`. Since Grape 3.3, mounted APIs no longer inherit helpers, rescue handlers and prefixes from the API they are mounted into, so specs usually need to hit the root API instead. Configure it once in your spec helper:
56
+
57
+ ```ruby
58
+ RSpec.configure do |config|
59
+ config.grape_app = API
60
+ end
61
+ ```
62
+
63
+ Any Rack app works, e.g. `Rails.application`. It can also be overridden per example group with metadata:
64
+
65
+ ```ruby
66
+ describe MyAPI, type: :api, grape_app: OtherAPI do
67
+ ```
68
+
69
+ Defining `app` (or `let(:app)`) in an example group still takes precedence.
70
+
53
71
  ### Basic usage
54
72
 
55
73
  This gem provides the `call_api` helper method. It automatically reads endpoint url and method from context description, allowing you to avoid duplication and write a shorter spec:
@@ -81,6 +99,8 @@ expect_endpoint_not_to receive(:dont_help)
81
99
 
82
100
  Note that under the hood those methods use `Grape::Endpoint.before_each`, as suggested by [documentation](https://github.com/ruby-grape/grape#stubbing-helpers). Thanks to [Jon Rowe](https://github.com/JonRowe) for the idea.
83
101
 
102
+ That method lives in `Grape::Testing`, which Grape 4 no longer loads as part of `require 'grape'`. rspec-grape requires `grape/testing` itself, so no extra `require` is needed in your spec helper on either Grape 3.3+ or Grape 4.
103
+
84
104
  ### Inline parameters
85
105
 
86
106
  When you define some parameters in url like
@@ -4,7 +4,7 @@ module RSpec
4
4
  include Rack::Test::Methods
5
5
 
6
6
  def app
7
- self.described_class
7
+ self.class.metadata[:grape_app] || RSpec.configuration.grape_app || described_class
8
8
  end
9
9
 
10
10
  def api_method
@@ -1,5 +1,5 @@
1
1
  module Rspec
2
2
  module Grape
3
- VERSION = "0.1.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -1,17 +1,19 @@
1
1
  require 'rspec/core'
2
2
  require 'rack/test'
3
+ require 'grape'
4
+ require 'grape/testing'
3
5
 
4
6
  require 'rspec/grape/exceptions'
5
7
  require 'rspec/grape/utils'
6
8
  require 'rspec/grape/methods'
7
9
 
8
10
  RSpec.configure do |config|
11
+ config.add_setting :grape_app
12
+
9
13
  config.include RSpec::Grape::Methods, type: :api
10
14
  config.include RSpec::Grape::Methods, :api
11
15
 
12
16
  after = Proc.new do
13
- # Grape 3.3 moved test hook reset out of `before_each(nil)` into a
14
- # dedicated `reset_before_each` (Grape::Testing). Requires grape >= 3.3.
15
17
  ::Grape::Endpoint.reset_before_each
16
18
  end
17
19
 
data/rspec-grape.gemspec CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_runtime_dependency "rack-test", "~> 2.0"
20
20
  spec.add_runtime_dependency "rspec-core", "~> 3.0"
21
+ # 3.3 is the floor for reset_before_each; the gem requires grape at load time.
22
+ spec.add_runtime_dependency "grape", ">= 3.3"
21
23
 
22
24
  spec.add_development_dependency "bundler", "~> 2.0"
23
25
  spec.add_development_dependency "rake", "~> 13.0"
24
26
  spec.add_development_dependency "rspec"
25
- # 0.1.0 uses Grape 3.3's reset_before_each; consumers must be on grape >= 3.3.
26
- spec.add_development_dependency "grape", ">= 3.3"
27
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wt-rspec-grape
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Tarapon
@@ -37,6 +37,20 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '3.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: grape
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '3.3'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '3.3'
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: bundler
42
56
  requirement: !ruby/object:Gem::Requirement
@@ -79,20 +93,6 @@ dependencies:
79
93
  - - ">="
80
94
  - !ruby/object:Gem::Version
81
95
  version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: grape
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '3.3'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '3.3'
96
96
  email:
97
97
  - ivan.tarapon@wetravel.com
98
98
  executables: []