committee-rails 0.4.0 → 0.6.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 +4 -4
- data/.github/workflows/test.yml +59 -0
- data/.gitignore +2 -0
- data/Gemfile +5 -0
- data/README.md +19 -4
- data/committee-rails.gemspec +1 -6
- data/lib/committee/rails/request_object.rb +23 -0
- data/lib/committee/rails/test/methods.rb +6 -12
- data/lib/committee/rails/version.rb +1 -1
- metadata +7 -77
- data/.travis.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c9e031103394dc6740d2597e215982bc98fc9c3b05cdf1a1e044f350043239e
|
4
|
+
data.tar.gz: 0f1c74128a7587828a6e5151caec8d4a2f5dda61d76d24072a133d8b9a4c948f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1038193906d81208ffcbad37fd2a19388d3b9c2978c4a6408cf2a751bd2606b0b74868d7da4689e77a8a9a0f2cbc5223fce36a248162911b54aab7e6ac32597a
|
7
|
+
data.tar.gz: 89f12a6200e0523519379b4aede4f4b98449998be4452e0ad2e4810f5090385fc716e9ac7c9e2dad1837520c4c15a62e83e968963415288ff5f3b98399808ca1
|
@@ -0,0 +1,59 @@
|
|
1
|
+
name: test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
pull_request:
|
8
|
+
types:
|
9
|
+
- opened
|
10
|
+
- synchronize
|
11
|
+
- reopened
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
test:
|
15
|
+
runs-on: ubuntu-latest
|
16
|
+
|
17
|
+
container: ${{ matrix.ruby }}
|
18
|
+
|
19
|
+
strategy:
|
20
|
+
fail-fast: false
|
21
|
+
|
22
|
+
matrix:
|
23
|
+
ruby:
|
24
|
+
- ruby:2.4
|
25
|
+
- ruby:2.5
|
26
|
+
- ruby:2.6
|
27
|
+
- ruby:2.7
|
28
|
+
- ruby:3.0
|
29
|
+
- ruby:3.1
|
30
|
+
- rubylang/ruby:master-nightly-bionic
|
31
|
+
include:
|
32
|
+
- ruby: rubylang/ruby:master-nightly-bionic
|
33
|
+
allow_failures: "true"
|
34
|
+
|
35
|
+
steps:
|
36
|
+
- uses: actions/checkout@v2
|
37
|
+
|
38
|
+
- name: Cache vendor/bundle
|
39
|
+
uses: actions/cache@v1
|
40
|
+
id: cache_gem
|
41
|
+
with:
|
42
|
+
path: vendor/bundle
|
43
|
+
key: v1-gem-${{ runner.os }}-${{ matrix.ruby }}-${{ github.sha }}
|
44
|
+
restore-keys: |
|
45
|
+
v1-gem-${{ runner.os }}-${{ matrix.ruby }}-
|
46
|
+
continue-on-error: ${{ matrix.allow_failures == 'true' }}
|
47
|
+
|
48
|
+
- name: bundle update
|
49
|
+
run: |
|
50
|
+
set -xe
|
51
|
+
bundle config path vendor/bundle
|
52
|
+
bundle update --jobs $(nproc) --retry 3
|
53
|
+
continue-on-error: ${{ matrix.allow_failures == 'true' }}
|
54
|
+
|
55
|
+
- name: Run test
|
56
|
+
run: |
|
57
|
+
set -xe
|
58
|
+
bundle exec rake
|
59
|
+
continue-on-error: ${{ matrix.allow_failures == 'true' }}
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[](https://travis-ci.org/willnet/committee-rails)
|
4
4
|
[](https://badge.fury.io/rb/committee-rails)
|
5
5
|
|
6
|
-
You can use `
|
6
|
+
You can use `assert_response_schema_confirm` in rails.
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
@@ -17,6 +17,13 @@ And then execute:
|
|
17
17
|
|
18
18
|
$ bundle
|
19
19
|
|
20
|
+
If you use committee prior to 4.4.0, you have to use committee-rails 0.5.x. Please see below.
|
21
|
+
|
22
|
+
[0.5 (0-5-stable) documentation](https://github.com/willnet/committee-rails/tree/0-5-stable)
|
23
|
+
|
24
|
+
If you use committee prior to 3.0, you have to use committee-rails 0.4.x. Please see below.
|
25
|
+
|
26
|
+
[0.4 (0-4-stable) documentation](https://github.com/willnet/committee-rails/tree/0-4-stable)
|
20
27
|
|
21
28
|
If you use committee prior to 2.4, you have to use committee-rails 0.3.x. Please see below.
|
22
29
|
|
@@ -35,13 +42,17 @@ describe 'request spec' do
|
|
35
42
|
include Committee::Rails::Test::Methods
|
36
43
|
|
37
44
|
def committee_options
|
38
|
-
@committee_options ||= {
|
45
|
+
@committee_options ||= {
|
46
|
+
schema_path: Rails.root.join('schema', 'schema.json').to_s,
|
47
|
+
query_hash_key: 'rack.request.query_hash',
|
48
|
+
parse_response_by_content_type: false,
|
49
|
+
}
|
39
50
|
end
|
40
51
|
|
41
52
|
describe 'GET /' do
|
42
53
|
it 'conform json schema' do
|
43
54
|
get '/'
|
44
|
-
|
55
|
+
assert_response_schema_confirm(200)
|
45
56
|
end
|
46
57
|
end
|
47
58
|
end
|
@@ -53,7 +64,11 @@ If you use rspec, you can use very simple.
|
|
53
64
|
```ruby
|
54
65
|
RSpec.configure do |config|
|
55
66
|
config.add_setting :committee_options
|
56
|
-
config.committee_options = {
|
67
|
+
config.committee_options = {
|
68
|
+
schema_path: Rails.root.join('schema', 'schema.json').to_s,
|
69
|
+
query_hash_key: 'rack.request.query_hash',
|
70
|
+
parse_response_by_content_type: false,
|
71
|
+
}
|
57
72
|
end
|
58
73
|
```
|
59
74
|
|
data/committee-rails.gemspec
CHANGED
@@ -18,13 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ['lib']
|
21
|
-
spec.add_dependency 'committee', '>=
|
21
|
+
spec.add_dependency 'committee', '>= 4.4.0'
|
22
22
|
spec.add_dependency 'activesupport'
|
23
23
|
spec.add_dependency 'actionpack'
|
24
24
|
spec.add_dependency 'railties'
|
25
|
-
spec.add_development_dependency 'bundler', '~> 1.13'
|
26
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
27
|
-
spec.add_development_dependency 'minitest', '~> 5.0'
|
28
|
-
spec.add_development_dependency 'rspec'
|
29
|
-
spec.add_development_dependency 'rspec-rails'
|
30
25
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'action_dispatch/http/request'
|
2
|
+
|
3
|
+
module Committee::Rails
|
4
|
+
class RequestObject
|
5
|
+
delegate_missing_to :@request
|
6
|
+
|
7
|
+
def initialize(request)
|
8
|
+
@request = request
|
9
|
+
end
|
10
|
+
|
11
|
+
def path
|
12
|
+
@request.original_fullpath
|
13
|
+
end
|
14
|
+
|
15
|
+
def path_info
|
16
|
+
@request.original_fullpath
|
17
|
+
end
|
18
|
+
|
19
|
+
def request_method
|
20
|
+
@request.env['action_dispatch.original_request_method'] || @request.request_method
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,22 +1,16 @@
|
|
1
|
+
require 'committee'
|
2
|
+
require 'committee/rails/request_object'
|
3
|
+
|
1
4
|
module Committee::Rails
|
2
5
|
module Test
|
3
6
|
module Methods
|
4
7
|
include Committee::Test::Methods
|
5
8
|
|
6
|
-
def committee_schema
|
7
|
-
# this code for 2.4.0, committee 3.x use committee_options
|
8
|
-
@committee_schema ||= Committee::Middleware::Base.new(nil, committee_options).send(:get_schema, committee_options)
|
9
|
-
end
|
10
|
-
|
11
9
|
def committee_options
|
12
10
|
if defined?(RSpec) && (options = RSpec.try(:configuration).try(:committee_options))
|
13
11
|
options
|
14
|
-
elsif !defined?(@committee_schema)
|
15
|
-
{ schema: default_schema }
|
16
12
|
else
|
17
|
-
|
18
|
-
# we can remove in comittee 3.x
|
19
|
-
{ schema: committee_schema }
|
13
|
+
{ schema_path: default_schema, query_hash_key: 'rack.request.query_hash', parse_response_by_content_type: false }
|
20
14
|
end
|
21
15
|
end
|
22
16
|
|
@@ -25,11 +19,11 @@ module Committee::Rails
|
|
25
19
|
end
|
26
20
|
|
27
21
|
def request_object
|
28
|
-
request
|
22
|
+
@request_object ||= Committee::Rails::RequestObject.new(integration_session.request)
|
29
23
|
end
|
30
24
|
|
31
25
|
def response_data
|
32
|
-
[response.status, response.headers, response.body]
|
26
|
+
[integration_session.response.status, integration_session.response.headers, integration_session.response.body]
|
33
27
|
end
|
34
28
|
end
|
35
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: committee-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- willnet
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: committee
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.4.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 4.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,76 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: bundler
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '1.13'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '1.13'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rake
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '10.0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '10.0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: minitest
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '5.0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '5.0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rspec-rails
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
69
|
description: Committee for rails
|
140
70
|
email:
|
141
71
|
- netwillnet@gmail.com
|
@@ -143,8 +73,8 @@ executables: []
|
|
143
73
|
extensions: []
|
144
74
|
extra_rdoc_files: []
|
145
75
|
files:
|
76
|
+
- ".github/workflows/test.yml"
|
146
77
|
- ".gitignore"
|
147
|
-
- ".travis.yml"
|
148
78
|
- CODE_OF_CONDUCT.md
|
149
79
|
- Gemfile
|
150
80
|
- LICENSE.txt
|
@@ -154,6 +84,7 @@ files:
|
|
154
84
|
- bin/setup
|
155
85
|
- committee-rails.gemspec
|
156
86
|
- lib/committee/rails.rb
|
87
|
+
- lib/committee/rails/request_object.rb
|
157
88
|
- lib/committee/rails/test/methods.rb
|
158
89
|
- lib/committee/rails/version.rb
|
159
90
|
homepage: https://github.com/willnet/committee-rails
|
@@ -175,8 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
106
|
- !ruby/object:Gem::Version
|
176
107
|
version: '0'
|
177
108
|
requirements: []
|
178
|
-
|
179
|
-
rubygems_version: 2.7.6
|
109
|
+
rubygems_version: 3.1.6
|
180
110
|
signing_key:
|
181
111
|
specification_version: 4
|
182
112
|
summary: Committee for rails
|