rack-rest-rspec 0.0.1 → 0.0.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 +4 -4
- data/Gemfile +20 -0
- data/README.md +78 -0
- data/Rakefile +6 -12
- data/VERSION +1 -1
- data/rack-rest-rspec.gemspec +10 -10
- metadata +24 -86
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d789211724035f08b5ce1adccabadddbd7b5409961ac77e70a7158854564e5f
|
4
|
+
data.tar.gz: a81ab341b305adf605099f47a1af7af0841b8902260b2d915d911442dfebee88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34d61192e292c62781d039766a19aabc8baf5d601aabb626b715303bccce6c1e84bd670f5cf49df83271d727421784c59a9cf2d0f1045165beaeed467dceb920
|
7
|
+
data.tar.gz: 6e487bec4bc746d540ee2668635f8fa03fdfafc44f24e5811e6fad54527071a5b20b7a761a2d7a5c503f02d5635779d58552e9be2ffb9a90e1e8468f1bace39a
|
data/Gemfile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
6
|
+
|
7
|
+
group :test, :development do
|
8
|
+
gem "roodi", "~> 5.0"
|
9
|
+
gem "rake", "~> 13.0"
|
10
|
+
gem "code_statistics", "~> 0.2.13"
|
11
|
+
gem "rspec", "~> 3.11"
|
12
|
+
gem "yard", "~> 0.9.28"
|
13
|
+
gem "yard-rspec", "~> 0.1"
|
14
|
+
end
|
15
|
+
|
16
|
+
gem "rack-test", "~> 2.0"
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
gem "version", "~> 1.1"
|
data/README.md
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# Rack REST RSpec
|
2
|
+
|
3
|
+
RSpec Matchers for REST Rack webservice
|
4
|
+
|
5
|
+
|
6
|
+
Install it yourself as:
|
7
|
+
|
8
|
+
$ gem install rack-rest-rspec
|
9
|
+
|
10
|
+
or
|
11
|
+
|
12
|
+
$ bundle add 'rack-rest-rspec'
|
13
|
+
|
14
|
+
## Usage
|
15
|
+
|
16
|
+
### Basic usage : install in your spec/spec_helper.rb or spec/prepare.rb
|
17
|
+
|
18
|
+
require 'rack-rest-rspec/prepare'
|
19
|
+
|
20
|
+
### Basic usage : sample of spec matchers usage
|
21
|
+
|
22
|
+
describe 'Posts REST API' do
|
23
|
+
before :all do
|
24
|
+
$service = RestService::new :service => MYRack::ModularApp
|
25
|
+
end
|
26
|
+
|
27
|
+
subject { $service }
|
28
|
+
context "GET /api/v1/posts : test for a collections of Post (empty)" do
|
29
|
+
it { expect(subject.get('/api/v1/posts')).to be_correctly_sent }
|
30
|
+
it { expect(subject).to respond_with_status 200 }
|
31
|
+
it { expect(subject).to respond_a_collection_of_record }
|
32
|
+
it { expect(subject).to respond_with_collection_size 0 }
|
33
|
+
end
|
34
|
+
|
35
|
+
context "POST /api/v1/post : create a new record" do
|
36
|
+
it { expect(subject.post('/api/v1/post',{id: 1, title: "test", body: "content"}.to_json)).to be_correctly_sent }
|
37
|
+
it { expect(subject).to respond_with_status 201 }
|
38
|
+
end
|
39
|
+
|
40
|
+
context "GET /api/v1/posts : test for a collections of Post" do
|
41
|
+
it { expect(subject.get('/api/v1/posts')).to be_correctly_sent }
|
42
|
+
it { expect(subject).to respond_with_status 200 }
|
43
|
+
it { expect(subject).to respond_a_collection_of_record }
|
44
|
+
it { expect(subject).to respond_with_collection_size 1 }
|
45
|
+
end
|
46
|
+
|
47
|
+
context "GET /api/v1/post/:id : get a record by code" do
|
48
|
+
it { expect(subject.get("/api/v1/post/1")).to be_correctly_sent }
|
49
|
+
it { expect(subject).to respond_with_status 200 }
|
50
|
+
it { expect(subject).to respond_a_record }
|
51
|
+
it { expect(subject).to respond_with_data({id: 1, title: "test", body: "content"}) }
|
52
|
+
end
|
53
|
+
|
54
|
+
context "DELETE /api/v1/post/:id : delete a pots by id" do
|
55
|
+
it{ expect(subject.delete("/api/v1/post/1")).to be_correctly_sent }
|
56
|
+
it { expect(subject).to respond_with_status 204 }
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
## Available matchers :
|
65
|
+
|
66
|
+
* be_correctly_send : check if return is HTTP valid
|
67
|
+
* respond_with_a_collection_of_record : check if the return is a JSON Array
|
68
|
+
* respond_a_record : check if the return is a JSON Hash
|
69
|
+
* respond_with_collection_size <Integer> : check if the collection have the good size
|
70
|
+
* respond_with_data <Object> : check if the return match the given object
|
71
|
+
* respond_with_status <Integer> : check if the HTTP response code is the good.
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
|
data/Rakefile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require 'rubygems'
|
3
|
+
require 'version'
|
4
|
+
require 'rake/version_task'
|
3
5
|
require 'rspec'
|
4
6
|
require 'rake'
|
5
7
|
require "rake/clean"
|
@@ -14,6 +16,10 @@ require "roodi"
|
|
14
16
|
require "roodi_task"
|
15
17
|
|
16
18
|
|
19
|
+
task default: :spec
|
20
|
+
|
21
|
+
Rake::VersionTask.new
|
22
|
+
|
17
23
|
RoodiTask.new() do | t |
|
18
24
|
t.patterns = %w(lib/**/*.rb)
|
19
25
|
t.config = "ultragreen_roodi_coding_convention.yml"
|
@@ -45,16 +51,4 @@ end
|
|
45
51
|
task :clobber => "yardoc:clobber"
|
46
52
|
|
47
53
|
|
48
|
-
Gem::PackageTask.new(spec) do |pkg|
|
49
|
-
pkg.need_tar = true
|
50
|
-
pkg.need_zip = true
|
51
|
-
end
|
52
|
-
|
53
|
-
Rake::RDocTask.new('rdoc') do |d|
|
54
|
-
d.rdoc_files.include('doc/**/*','bin/*')
|
55
|
-
d.title = 'Dorsal : Yard'
|
56
|
-
d.options << '--line-numbers' << '--diagram' << '-SHN'
|
57
|
-
end
|
58
|
-
|
59
|
-
task :default => [:gem]
|
60
54
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/rack-rest-rspec.gemspec
CHANGED
@@ -5,27 +5,27 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "rack-rest-rspec"
|
8
|
-
spec.version =
|
8
|
+
spec.version = `cat VERSION`
|
9
9
|
spec.authors = ["Romain GEORGES"]
|
10
10
|
spec.email = ["romain@ultragreen.net"]
|
11
11
|
spec.summary = %q{Rack-rest-rspec: RSpec Matchers for REST Rack webservice }
|
12
12
|
spec.description = %q{Rack-rest-rspec: RSpec Matchers for REST Rack webservice }
|
13
13
|
spec.homepage = "http://github.com/Ultragreen/rack-rest-rspec"
|
14
14
|
spec.license = "BSD-2"
|
15
|
+
|
15
16
|
spec.files = `git ls-files -z`.split("\x0")
|
16
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
19
|
spec.require_paths = ["lib"]
|
19
20
|
|
20
|
-
spec.add_development_dependency "
|
21
|
-
spec.add_development_dependency "rake"
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
|
27
|
-
spec.
|
28
|
-
spec.add_runtime_dependency "rack-test", "~> 0.6", ">= 0.6.3"
|
21
|
+
spec.add_development_dependency "roodi", "~> 5.0"
|
22
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
23
|
+
spec.add_development_dependency "code_statistics", "~> 0.2.13"
|
24
|
+
spec.add_development_dependency "rspec", "~> 3.11"
|
25
|
+
spec.add_development_dependency "yard", "~> 0.9.28"
|
26
|
+
spec.add_development_dependency "yard-rspec", "~> 0.1"
|
27
|
+
|
28
|
+
spec.add_runtime_dependency "rack-test", "~> 2.0"
|
29
29
|
|
30
30
|
|
31
31
|
end
|
metadata
CHANGED
@@ -1,143 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-rest-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Romain GEORGES
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: roodi
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '5.0'
|
20
20
|
type: :development
|
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: '5.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.14'
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 2.14.1
|
51
|
-
type: :development
|
52
|
-
prerelease: false
|
53
|
-
version_requirements: !ruby/object:Gem::Requirement
|
54
|
-
requirements:
|
55
|
-
- - "~>"
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '2.14'
|
58
|
-
- - ">="
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 2.14.1
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: yard
|
63
29
|
requirement: !ruby/object:Gem::Requirement
|
64
30
|
requirements:
|
65
31
|
- - "~>"
|
66
32
|
- !ruby/object:Gem::Version
|
67
|
-
version: '0
|
68
|
-
- - ">="
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 0.8.7.2
|
33
|
+
version: '13.0'
|
71
34
|
type: :development
|
72
35
|
prerelease: false
|
73
36
|
version_requirements: !ruby/object:Gem::Requirement
|
74
37
|
requirements:
|
75
38
|
- - "~>"
|
76
39
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0
|
78
|
-
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: 0.8.7.2
|
40
|
+
version: '13.0'
|
81
41
|
- !ruby/object:Gem::Dependency
|
82
|
-
name:
|
42
|
+
name: code_statistics
|
83
43
|
requirement: !ruby/object:Gem::Requirement
|
84
44
|
requirements:
|
85
45
|
- - "~>"
|
86
46
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: 4.0.1
|
47
|
+
version: 0.2.13
|
91
48
|
type: :development
|
92
49
|
prerelease: false
|
93
50
|
version_requirements: !ruby/object:Gem::Requirement
|
94
51
|
requirements:
|
95
52
|
- - "~>"
|
96
53
|
- !ruby/object:Gem::Version
|
97
|
-
version:
|
98
|
-
- - ">="
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version: 4.0.1
|
54
|
+
version: 0.2.13
|
101
55
|
- !ruby/object:Gem::Dependency
|
102
|
-
name:
|
56
|
+
name: rspec
|
103
57
|
requirement: !ruby/object:Gem::Requirement
|
104
58
|
requirements:
|
105
59
|
- - "~>"
|
106
60
|
- !ruby/object:Gem::Version
|
107
|
-
version: '3.
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 3.1.1
|
61
|
+
version: '3.11'
|
111
62
|
type: :development
|
112
63
|
prerelease: false
|
113
64
|
version_requirements: !ruby/object:Gem::Requirement
|
114
65
|
requirements:
|
115
66
|
- - "~>"
|
116
67
|
- !ruby/object:Gem::Version
|
117
|
-
version: '3.
|
118
|
-
- - ">="
|
119
|
-
- !ruby/object:Gem::Version
|
120
|
-
version: 3.1.1
|
68
|
+
version: '3.11'
|
121
69
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
70
|
+
name: yard
|
123
71
|
requirement: !ruby/object:Gem::Requirement
|
124
72
|
requirements:
|
125
73
|
- - "~>"
|
126
74
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
128
|
-
- - ">="
|
129
|
-
- !ruby/object:Gem::Version
|
130
|
-
version: 0.2.13
|
75
|
+
version: 0.9.28
|
131
76
|
type: :development
|
132
77
|
prerelease: false
|
133
78
|
version_requirements: !ruby/object:Gem::Requirement
|
134
79
|
requirements:
|
135
80
|
- - "~>"
|
136
81
|
- !ruby/object:Gem::Version
|
137
|
-
version:
|
138
|
-
- - ">="
|
139
|
-
- !ruby/object:Gem::Version
|
140
|
-
version: 0.2.13
|
82
|
+
version: 0.9.28
|
141
83
|
- !ruby/object:Gem::Dependency
|
142
84
|
name: yard-rspec
|
143
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,20 +100,14 @@ dependencies:
|
|
158
100
|
requirements:
|
159
101
|
- - "~>"
|
160
102
|
- !ruby/object:Gem::Version
|
161
|
-
version: '0
|
162
|
-
- - ">="
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: 0.6.3
|
103
|
+
version: '2.0'
|
165
104
|
type: :runtime
|
166
105
|
prerelease: false
|
167
106
|
version_requirements: !ruby/object:Gem::Requirement
|
168
107
|
requirements:
|
169
108
|
- - "~>"
|
170
109
|
- !ruby/object:Gem::Version
|
171
|
-
version: '0
|
172
|
-
- - ">="
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: 0.6.3
|
110
|
+
version: '2.0'
|
175
111
|
description: 'Rack-rest-rspec: RSpec Matchers for REST Rack webservice '
|
176
112
|
email:
|
177
113
|
- romain@ultragreen.net
|
@@ -179,6 +115,8 @@ executables: []
|
|
179
115
|
extensions: []
|
180
116
|
extra_rdoc_files: []
|
181
117
|
files:
|
118
|
+
- Gemfile
|
119
|
+
- README.md
|
182
120
|
- Rakefile
|
183
121
|
- VERSION
|
184
122
|
- lib/rack-rest-rspec/helpers/hash.rb
|
@@ -199,7 +137,7 @@ homepage: http://github.com/Ultragreen/rack-rest-rspec
|
|
199
137
|
licenses:
|
200
138
|
- BSD-2
|
201
139
|
metadata: {}
|
202
|
-
post_install_message:
|
140
|
+
post_install_message:
|
203
141
|
rdoc_options: []
|
204
142
|
require_paths:
|
205
143
|
- lib
|
@@ -214,8 +152,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
152
|
- !ruby/object:Gem::Version
|
215
153
|
version: '0'
|
216
154
|
requirements: []
|
217
|
-
rubygems_version: 3.2
|
218
|
-
signing_key:
|
155
|
+
rubygems_version: 3.1.2
|
156
|
+
signing_key:
|
219
157
|
specification_version: 4
|
220
158
|
summary: 'Rack-rest-rspec: RSpec Matchers for REST Rack webservice'
|
221
159
|
test_files: []
|