webspicy 0.15.7 → 0.16.3
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/README.md +71 -24
- data/bin/webspicy +30 -14
- data/examples/restful/Gemfile +2 -2
- data/examples/restful/Gemfile.lock +53 -33
- data/examples/restful/Rakefile +0 -1
- data/examples/restful/app.rb +4 -1
- data/examples/restful/webspicy/config.rb +8 -0
- data/examples/restful/webspicy/rack.rb +1 -1
- data/examples/restful/webspicy/real.rb +1 -1
- data/examples/restful/webspicy/schema.fio +2 -2
- data/examples/restful/webspicy/support/must_be_authenticated.rb +2 -2
- data/examples/restful/webspicy/support/todo_removed.rb +18 -0
- data/examples/restful/webspicy/todo/deleteTodo.yml +4 -1
- data/examples/restful/webspicy/todo/getTodoSingleServiceFormat.yml +46 -0
- data/examples/restful/webspicy/todo/options.yml +1 -1
- data/examples/restful/webspicy/todo/patchTodo.yml +3 -0
- data/examples/restful/webspicy/todo/postFile.yml +1 -1
- data/examples/single_spec/spec.yml +59 -0
- data/examples/website/config.rb +2 -0
- data/examples/website/schema.fio +1 -0
- data/examples/website/specification/get-http.yml +30 -0
- data/examples/website/specification/get-https.yml +30 -0
- data/lib/finitio/webspicy/scalars.fio +25 -0
- data/lib/webspicy.rb +48 -17
- data/lib/webspicy/checker.rb +2 -2
- data/lib/webspicy/configuration.rb +70 -14
- data/lib/webspicy/configuration/scope.rb +162 -0
- data/lib/webspicy/configuration/single_url.rb +58 -0
- data/lib/webspicy/configuration/single_yml_file.rb +30 -0
- data/lib/webspicy/formaldoc.fio +23 -8
- data/lib/webspicy/mocker.rb +8 -8
- data/lib/webspicy/mocker/config.ru +5 -0
- data/lib/webspicy/openapi.rb +1 -0
- data/lib/webspicy/openapi/generator.rb +127 -0
- data/lib/webspicy/{resource.rb → specification.rb} +28 -5
- data/lib/webspicy/specification/file_upload.rb +37 -0
- data/lib/webspicy/specification/postcondition.rb +16 -0
- data/lib/webspicy/specification/precondition.rb +19 -0
- data/lib/webspicy/specification/precondition/global_request_headers.rb +35 -0
- data/lib/webspicy/specification/precondition/robust_to_invalid_input.rb +68 -0
- data/lib/webspicy/{resource → specification}/service.rb +11 -6
- data/lib/webspicy/specification/test_case.rb +139 -0
- data/lib/webspicy/support.rb +1 -0
- data/lib/webspicy/support/colorize.rb +28 -0
- data/lib/webspicy/support/status_range.rb +6 -1
- data/lib/webspicy/tester.rb +16 -11
- data/lib/webspicy/tester/asserter.rb +3 -2
- data/lib/webspicy/tester/assertions.rb +5 -1
- data/lib/webspicy/tester/client.rb +63 -0
- data/lib/webspicy/tester/client/http_client.rb +154 -0
- data/lib/webspicy/tester/client/rack_test_client.rb +188 -0
- data/lib/webspicy/tester/client/support.rb +65 -0
- data/lib/webspicy/tester/invocation.rb +218 -0
- data/lib/webspicy/tester/rspec_asserter.rb +108 -0
- data/lib/webspicy/tester/rspec_matchers.rb +104 -0
- data/lib/webspicy/version.rb +2 -2
- data/spec/{unit/spec_helper.rb → spec_helper.rb} +0 -0
- data/spec/unit/configuration/scope/test_each_service.rb +49 -0
- data/spec/unit/configuration/scope/test_each_specification.rb +68 -0
- data/spec/unit/configuration/scope/test_expand_example.rb +65 -0
- data/spec/unit/configuration/scope/test_to_real_url.rb +82 -0
- data/spec/unit/openapi/test_generator.rb +28 -0
- data/spec/unit/specification/precondition/test_global_request_headers.rb +42 -0
- data/spec/unit/{resource → specification}/service/test_dress_params.rb +2 -2
- data/spec/unit/specification/test_case/test_mutate.rb +24 -0
- data/spec/unit/{resource → specification}/test_instantiate_url.rb +5 -5
- data/spec/unit/{resource → specification}/test_url_placeholders.rb +4 -4
- data/spec/unit/test_configuration.rb +24 -7
- data/spec/unit/tester/client/test_around.rb +61 -0
- data/spec/unit/tester/test_asserter.rb +51 -0
- data/spec/unit/tester/test_assertions.rb +4 -4
- data/tasks/test.rake +3 -1
- metadata +88 -45
- data/LICENSE.md +0 -22
- data/lib/webspicy/client.rb +0 -61
- data/lib/webspicy/client/http_client.rb +0 -145
- data/lib/webspicy/client/rack_test_client.rb +0 -181
- data/lib/webspicy/client/support.rb +0 -48
- data/lib/webspicy/file_upload.rb +0 -35
- data/lib/webspicy/postcondition.rb +0 -14
- data/lib/webspicy/precondition.rb +0 -15
- data/lib/webspicy/resource/service/invocation.rb +0 -212
- data/lib/webspicy/resource/service/test_case.rb +0 -132
- data/lib/webspicy/scope.rb +0 -160
- data/spec/unit/client/test_around.rb +0 -59
- data/spec/unit/scope/test_each_resource.rb +0 -66
- data/spec/unit/scope/test_each_service.rb +0 -47
- data/spec/unit/scope/test_expand_example.rb +0 -63
- data/spec/unit/scope/test_to_real_url.rb +0 -80
@@ -31,6 +31,23 @@ module Webspicy
|
|
31
31
|
expect(c.preconditions.size).to eq(1)
|
32
32
|
end
|
33
33
|
|
34
|
+
it 'supports an URL and returns a specific configuration instance' do
|
35
|
+
c = Configuration.dress("http://google.com/")
|
36
|
+
expect(c).to be_a(Configuration)
|
37
|
+
expect(c.folder).to eq(Path.pwd)
|
38
|
+
expect(c.each_scope.to_a.size).to eql(1)
|
39
|
+
expect(c.each_scope.to_a.first.each_specification.to_a.size).to eql(1)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'supports a single .yml file and returns a specific configuration instance' do
|
43
|
+
file = restful_folder/"todo/getTodo.yml"
|
44
|
+
c = Configuration.dress(file)
|
45
|
+
expect(c).to be_a(Configuration)
|
46
|
+
expect(c.folder).to eq(restful_folder)
|
47
|
+
expect(c.each_scope.to_a.size).to eql(1)
|
48
|
+
expect(c.each_scope.to_a.first.each_specification.to_a.size).to eql(1)
|
49
|
+
end
|
50
|
+
|
34
51
|
it 'yields the block with the configuration, if given' do
|
35
52
|
seen = nil
|
36
53
|
Configuration.dress(Path.dir/'configuration'){|c|
|
@@ -56,20 +73,20 @@ module Webspicy
|
|
56
73
|
|
57
74
|
it 'creates a child when adding a folder' do
|
58
75
|
Configuration.new(Path.dir) do |c|
|
59
|
-
child = c.folder '
|
76
|
+
child = c.folder 'specification'
|
60
77
|
expect(child).to be_a(Configuration)
|
61
|
-
expect(child.folder).to eql(Path.dir/'
|
78
|
+
expect(child.folder).to eql(Path.dir/'specification')
|
62
79
|
end
|
63
80
|
end
|
64
81
|
|
65
82
|
it 'yield the child to the block if any given' do
|
66
83
|
Configuration.new(Path.dir) do |c|
|
67
84
|
seen = nil
|
68
|
-
c.folder '
|
85
|
+
c.folder 'specification' do |child|
|
69
86
|
seen = child
|
70
87
|
end
|
71
88
|
expect(seen).to be_a(Configuration)
|
72
|
-
expect(seen.folder).to eql(Path.dir/'
|
89
|
+
expect(seen.folder).to eql(Path.dir/'specification')
|
73
90
|
end
|
74
91
|
end
|
75
92
|
end
|
@@ -223,7 +240,7 @@ module Webspicy
|
|
223
240
|
let(:before_aller) { ->(){} }
|
224
241
|
let(:after_aller) { ->(){} }
|
225
242
|
let(:config) do
|
226
|
-
Configuration.new(Path.dir/'
|
243
|
+
Configuration.new(Path.dir/'specification') do |c|
|
227
244
|
c.before_all(&before_aller)
|
228
245
|
c.before_each(&before_eacher)
|
229
246
|
c.after_each(&after_eacher)
|
@@ -243,7 +260,7 @@ module Webspicy
|
|
243
260
|
describe 'dup' do
|
244
261
|
|
245
262
|
let(:original) do
|
246
|
-
Configuration.new(Path.dir/'
|
263
|
+
Configuration.new(Path.dir/'specification') do |c|
|
247
264
|
c.host = "http://127.0.0.1"
|
248
265
|
c.folder 'service'
|
249
266
|
end
|
@@ -253,7 +270,7 @@ module Webspicy
|
|
253
270
|
duped = original.dup do |d|
|
254
271
|
d.host = "http://127.0.0.1:4567"
|
255
272
|
end
|
256
|
-
expect(duped.folder).to eql(Path.dir/'
|
273
|
+
expect(duped.folder).to eql(Path.dir/'specification')
|
257
274
|
expect(duped.host).to eql("http://127.0.0.1:4567")
|
258
275
|
expect(original.host).to eql("http://127.0.0.1")
|
259
276
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
module Webspicy
|
3
|
+
class Tester
|
4
|
+
describe Client, "around" do
|
5
|
+
|
6
|
+
it 'work with no around at all' do
|
7
|
+
config = Configuration.new
|
8
|
+
|
9
|
+
seen = false
|
10
|
+
block = ->(){ seen = true }
|
11
|
+
|
12
|
+
scope = Configuration::Scope.new(config)
|
13
|
+
Client.new(scope).around(1, 2, 3, &block)
|
14
|
+
expect(seen).to be(true)
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'work with one around' do
|
18
|
+
config = Configuration.new
|
19
|
+
|
20
|
+
seen = false
|
21
|
+
seen_args = nil
|
22
|
+
config.around_each do |*args, &bl|
|
23
|
+
seen_args = args
|
24
|
+
bl.call
|
25
|
+
end
|
26
|
+
|
27
|
+
scope = Configuration::Scope.new(config)
|
28
|
+
block = ->(){ seen = true }
|
29
|
+
Client.new(scope).around(1, 2, 3, &block)
|
30
|
+
|
31
|
+
expect(seen_args[0...-1]).to eql([1, 2, 3])
|
32
|
+
expect(seen).to be(true)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'works with two arounds' do
|
36
|
+
config = Configuration.new
|
37
|
+
|
38
|
+
seen = false
|
39
|
+
|
40
|
+
seen_args = []
|
41
|
+
config.around_each do |*args, &bl|
|
42
|
+
seen_args << args
|
43
|
+
bl.call
|
44
|
+
end
|
45
|
+
config.around_each do |*args, &bl|
|
46
|
+
seen_args << args
|
47
|
+
bl.call
|
48
|
+
end
|
49
|
+
|
50
|
+
scope = Configuration::Scope.new(config)
|
51
|
+
block = ->(){ seen = true }
|
52
|
+
Client.new(scope).around(1, 2, 3, &block)
|
53
|
+
|
54
|
+
expect(seen_args.size).to eql(2)
|
55
|
+
expect(seen_args.all?{|sa| sa[0...-1] == [1,2,3] }).to be(true)
|
56
|
+
expect(seen).to be(true)
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Webspicy
|
4
|
+
class Tester
|
5
|
+
describe Asserter do
|
6
|
+
let(:asserter) { Asserter.new(target) }
|
7
|
+
|
8
|
+
describe '#size' do
|
9
|
+
let(:target) { [1, 2, 3, 4] }
|
10
|
+
|
11
|
+
it 'returns nil when the assertion is true for a plain array' do
|
12
|
+
expect(asserter.size('', 4)).to eq nil
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'raises an exception with a descriptive message when the assertion is false' do
|
16
|
+
expect { asserter.size('', 3) }
|
17
|
+
.to raise_exception RuntimeError, 'Expected [1,2,3,4] to have a size of 3, actual size is: 4'
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'with a string' do
|
21
|
+
let(:target) { 'FooBaz' }
|
22
|
+
|
23
|
+
it 'returns nil when the assertion is true' do
|
24
|
+
expect(asserter.size('', 6)).to eq nil
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'with an array at a nested path' do
|
29
|
+
let(:target) { { foo: [1, 2, { bar: [10, 11, 12] }, 4] } }
|
30
|
+
|
31
|
+
it 'returns nil when the assertion is true' do
|
32
|
+
expect(asserter.size('foo/2/bar', 3)).to eq nil
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'raises an exception with a descriptive message when the assertion is false' do
|
36
|
+
expect { asserter.size('foo/2/bar', 99) }
|
37
|
+
.to raise_exception RuntimeError,
|
38
|
+
'Expected [10,11,12] to have a size of 99, actual size is: 3'
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'raises an InvalidArgError when the path is invalid' do
|
42
|
+
expect { asserter.size('foo/28/bar', 99) }
|
43
|
+
.to raise_exception Webspicy::Tester::Assertions::InvalidArgError,
|
44
|
+
'Expecting instance responding to size'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
@@ -23,7 +23,7 @@ module Webspicy
|
|
23
23
|
expect(includes [5, 1], 1).to be(true)
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'has
|
26
|
+
it 'has a notIncludes() assertion' do
|
27
27
|
expect(notIncludes [], 1).to be(true)
|
28
28
|
expect(notIncludes [5, 1], 1).to be(false)
|
29
29
|
end
|
@@ -37,7 +37,7 @@ module Webspicy
|
|
37
37
|
expect(exists({ foo: {} }, 'foo/bar')).to be(false)
|
38
38
|
end
|
39
39
|
|
40
|
-
it 'has
|
40
|
+
it 'has a notExists() assertion' do
|
41
41
|
expect(notExists nil).to be(true)
|
42
42
|
expect(notExists []).to be(false)
|
43
43
|
expect(notExists [1]).to be(false)
|
@@ -60,7 +60,7 @@ module Webspicy
|
|
60
60
|
expect(notEmpty({ foo: [1] }, 'foo')).to be(true)
|
61
61
|
end
|
62
62
|
|
63
|
-
it 'has
|
63
|
+
it 'has a size() assertion' do
|
64
64
|
expect(size [], 0).to be(true)
|
65
65
|
expect(size [], 1).to be(false)
|
66
66
|
expect(size [12], 1).to be(true)
|
@@ -106,7 +106,7 @@ module Webspicy
|
|
106
106
|
expect(idFD(target, 'foo', 1, baz: "boz")).to be(false)
|
107
107
|
end
|
108
108
|
|
109
|
-
it 'has
|
109
|
+
it 'has a pathFD assertion' do
|
110
110
|
target = { foo: { bar: "baz"} }
|
111
111
|
expect(pathFD(target, 'foo', bar: "baz")).to be(true)
|
112
112
|
expect(pathFD(target, 'foo', bar: "boz")).to be(false)
|
data/tasks/test.rake
CHANGED
@@ -11,7 +11,9 @@ namespace :test do
|
|
11
11
|
tests << :unit
|
12
12
|
|
13
13
|
require 'path'
|
14
|
-
Path.dir.parent.glob("examples/*").select{|f|
|
14
|
+
Path.dir.parent.glob("examples/*").select{|f|
|
15
|
+
f.directory? && (f/"Rakefile").exists?
|
16
|
+
}.each do |file|
|
15
17
|
test_name = file.basename.to_s.to_sym
|
16
18
|
desc "Runs the integration tests on the #{file.basename} example"
|
17
19
|
task(test_name) do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webspicy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bernard Lambeau
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -16,34 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '12'
|
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: '12'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sinatra
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 2.0.2
|
33
|
+
version: '2'
|
37
34
|
type: :development
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 2.0.2
|
40
|
+
version: '2'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: rspec
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,16 +84,16 @@ dependencies:
|
|
90
84
|
name: finitio
|
91
85
|
requirement: !ruby/object:Gem::Requirement
|
92
86
|
requirements:
|
93
|
-
- - "
|
87
|
+
- - "~>"
|
94
88
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
89
|
+
version: 0.9.0
|
96
90
|
type: :runtime
|
97
91
|
prerelease: false
|
98
92
|
version_requirements: !ruby/object:Gem::Requirement
|
99
93
|
requirements:
|
100
|
-
- - "
|
94
|
+
- - "~>"
|
101
95
|
- !ruby/object:Gem::Version
|
102
|
-
version: 0.
|
96
|
+
version: 0.9.0
|
103
97
|
- !ruby/object:Gem::Dependency
|
104
98
|
name: http
|
105
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,16 +112,16 @@ dependencies:
|
|
118
112
|
name: path
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
120
114
|
requirements:
|
121
|
-
- - "
|
115
|
+
- - "~>"
|
122
116
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
117
|
+
version: '2.0'
|
124
118
|
type: :runtime
|
125
119
|
prerelease: false
|
126
120
|
version_requirements: !ruby/object:Gem::Requirement
|
127
121
|
requirements:
|
128
|
-
- - "
|
122
|
+
- - "~>"
|
129
123
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
124
|
+
version: '2.0'
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
126
|
name: rack-robustness
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,6 +170,34 @@ dependencies:
|
|
176
170
|
- - ">="
|
177
171
|
- !ruby/object:Gem::Version
|
178
172
|
version: '0'
|
173
|
+
- !ruby/object:Gem::Dependency
|
174
|
+
name: colorize
|
175
|
+
requirement: !ruby/object:Gem::Requirement
|
176
|
+
requirements:
|
177
|
+
- - "~>"
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
version: 0.8.1
|
180
|
+
type: :runtime
|
181
|
+
prerelease: false
|
182
|
+
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
requirements:
|
184
|
+
- - "~>"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 0.8.1
|
187
|
+
- !ruby/object:Gem::Dependency
|
188
|
+
name: openapi3_parser
|
189
|
+
requirement: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - "~>"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: 0.8.2
|
194
|
+
type: :runtime
|
195
|
+
prerelease: false
|
196
|
+
version_requirements: !ruby/object:Gem::Requirement
|
197
|
+
requirements:
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 0.8.2
|
179
201
|
description: Webspicy helps testing web services as software operation black boxes
|
180
202
|
email: blambeau@gmail.com
|
181
203
|
executables:
|
@@ -184,7 +206,6 @@ extensions: []
|
|
184
206
|
extra_rdoc_files: []
|
185
207
|
files:
|
186
208
|
- Gemfile
|
187
|
-
- LICENSE.md
|
188
209
|
- README.md
|
189
210
|
- Rakefile
|
190
211
|
- bin/webspicy
|
@@ -198,8 +219,10 @@ files:
|
|
198
219
|
- examples/restful/webspicy/schema.fio
|
199
220
|
- examples/restful/webspicy/support/must_be_an_admin.rb
|
200
221
|
- examples/restful/webspicy/support/must_be_authenticated.rb
|
222
|
+
- examples/restful/webspicy/support/todo_removed.rb
|
201
223
|
- examples/restful/webspicy/todo/deleteTodo.yml
|
202
224
|
- examples/restful/webspicy/todo/getTodo.yml
|
225
|
+
- examples/restful/webspicy/todo/getTodoSingleServiceFormat.yml
|
203
226
|
- examples/restful/webspicy/todo/getTodos.yml
|
204
227
|
- examples/restful/webspicy/todo/options.yml
|
205
228
|
- examples/restful/webspicy/todo/patchTodo.yml
|
@@ -208,42 +231,62 @@ files:
|
|
208
231
|
- examples/restful/webspicy/todo/postTodos.yml
|
209
232
|
- examples/restful/webspicy/todo/putTodo.yml
|
210
233
|
- examples/restful/webspicy/todo/todos.csv
|
234
|
+
- examples/single_spec/spec.yml
|
235
|
+
- examples/website/config.rb
|
236
|
+
- examples/website/schema.fio
|
237
|
+
- examples/website/specification/get-http.yml
|
238
|
+
- examples/website/specification/get-https.yml
|
239
|
+
- lib/finitio/webspicy/scalars.fio
|
211
240
|
- lib/webspicy.rb
|
212
241
|
- lib/webspicy/checker.rb
|
213
|
-
- lib/webspicy/client.rb
|
214
|
-
- lib/webspicy/client/http_client.rb
|
215
|
-
- lib/webspicy/client/rack_test_client.rb
|
216
|
-
- lib/webspicy/client/support.rb
|
217
242
|
- lib/webspicy/configuration.rb
|
218
|
-
- lib/webspicy/
|
243
|
+
- lib/webspicy/configuration/scope.rb
|
244
|
+
- lib/webspicy/configuration/single_url.rb
|
245
|
+
- lib/webspicy/configuration/single_yml_file.rb
|
219
246
|
- lib/webspicy/formaldoc.fio
|
220
247
|
- lib/webspicy/mocker.rb
|
221
|
-
- lib/webspicy/
|
222
|
-
- lib/webspicy/
|
223
|
-
- lib/webspicy/
|
224
|
-
- lib/webspicy/
|
225
|
-
- lib/webspicy/
|
226
|
-
- lib/webspicy/
|
227
|
-
- lib/webspicy/
|
248
|
+
- lib/webspicy/mocker/config.ru
|
249
|
+
- lib/webspicy/openapi.rb
|
250
|
+
- lib/webspicy/openapi/generator.rb
|
251
|
+
- lib/webspicy/specification.rb
|
252
|
+
- lib/webspicy/specification/file_upload.rb
|
253
|
+
- lib/webspicy/specification/postcondition.rb
|
254
|
+
- lib/webspicy/specification/precondition.rb
|
255
|
+
- lib/webspicy/specification/precondition/global_request_headers.rb
|
256
|
+
- lib/webspicy/specification/precondition/robust_to_invalid_input.rb
|
257
|
+
- lib/webspicy/specification/service.rb
|
258
|
+
- lib/webspicy/specification/test_case.rb
|
228
259
|
- lib/webspicy/support.rb
|
260
|
+
- lib/webspicy/support/colorize.rb
|
229
261
|
- lib/webspicy/support/status_range.rb
|
230
262
|
- lib/webspicy/tester.rb
|
231
263
|
- lib/webspicy/tester/asserter.rb
|
232
264
|
- lib/webspicy/tester/assertions.rb
|
265
|
+
- lib/webspicy/tester/client.rb
|
266
|
+
- lib/webspicy/tester/client/http_client.rb
|
267
|
+
- lib/webspicy/tester/client/rack_test_client.rb
|
268
|
+
- lib/webspicy/tester/client/support.rb
|
269
|
+
- lib/webspicy/tester/invocation.rb
|
270
|
+
- lib/webspicy/tester/rspec_asserter.rb
|
271
|
+
- lib/webspicy/tester/rspec_matchers.rb
|
233
272
|
- lib/webspicy/version.rb
|
234
|
-
- spec/
|
273
|
+
- spec/spec_helper.rb
|
235
274
|
- spec/unit/configuration/config.rb
|
275
|
+
- spec/unit/configuration/scope/test_each_service.rb
|
276
|
+
- spec/unit/configuration/scope/test_each_specification.rb
|
277
|
+
- spec/unit/configuration/scope/test_expand_example.rb
|
278
|
+
- spec/unit/configuration/scope/test_to_real_url.rb
|
236
279
|
- spec/unit/mocker/test_mocker.rb
|
237
|
-
- spec/unit/
|
238
|
-
- spec/unit/
|
239
|
-
- spec/unit/
|
240
|
-
- spec/unit/
|
241
|
-
- spec/unit/
|
242
|
-
- spec/unit/
|
243
|
-
- spec/unit/scope/test_to_real_url.rb
|
244
|
-
- spec/unit/spec_helper.rb
|
280
|
+
- spec/unit/openapi/test_generator.rb
|
281
|
+
- spec/unit/specification/precondition/test_global_request_headers.rb
|
282
|
+
- spec/unit/specification/service/test_dress_params.rb
|
283
|
+
- spec/unit/specification/test_case/test_mutate.rb
|
284
|
+
- spec/unit/specification/test_instantiate_url.rb
|
285
|
+
- spec/unit/specification/test_url_placeholders.rb
|
245
286
|
- spec/unit/support/test_status_range.rb
|
246
287
|
- spec/unit/test_configuration.rb
|
288
|
+
- spec/unit/tester/client/test_around.rb
|
289
|
+
- spec/unit/tester/test_asserter.rb
|
247
290
|
- spec/unit/tester/test_assertions.rb
|
248
291
|
- tasks/gem.rake
|
249
292
|
- tasks/test.rake
|
@@ -251,7 +294,7 @@ homepage: http://github.com/enspirit/webspicy
|
|
251
294
|
licenses:
|
252
295
|
- MIT
|
253
296
|
metadata: {}
|
254
|
-
post_install_message:
|
297
|
+
post_install_message:
|
255
298
|
rdoc_options: []
|
256
299
|
require_paths:
|
257
300
|
- lib
|
@@ -267,7 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
267
310
|
version: '0'
|
268
311
|
requirements: []
|
269
312
|
rubygems_version: 3.1.2
|
270
|
-
signing_key:
|
313
|
+
signing_key:
|
271
314
|
specification_version: 4
|
272
315
|
summary: Webspicy helps testing web services as software operation black boxes!
|
273
316
|
test_files: []
|