rspec-webservice_matchers 4.8.1 → 4.9.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/HISTORY.md +8 -0
- data/lib/rspec/webservice_matchers/be_fast.rb +23 -2
- data/lib/rspec/webservice_matchers/be_up.rb +2 -1
- data/lib/rspec/webservice_matchers/have_a_valid_cert.rb +1 -0
- data/lib/rspec/webservice_matchers/version.rb +1 -1
- data/spec/rspec/webservice_matchers/be_fast_spec.rb +28 -0
- data/spec/rspec/webservice_matchers/be_up_spec.rb +13 -13
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f930e26ec837ba1ca066f2a911608b5c58edfc09
|
4
|
+
data.tar.gz: 0c2be7eae06450c998838d3e1530421ee9dcb6b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 702e17e06e648086ce8c75c2838eb3997a7d44ccb741af282d22b46785fc5d44862966713e788c54acbe908f2290469fb170754c0fec303b8218dab3bfa7197b
|
7
|
+
data.tar.gz: 88be96f4ae2de62c765bb0a9fd6bc621e0024b6513ba945700922adeb4e76031f9b3e9ab04e9ed1247cb928bf305ee335679a4c9a96128245e44ab721c7c6ec6
|
data/HISTORY.md
CHANGED
@@ -1,11 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'cgi'
|
3
3
|
require 'json'
|
4
|
+
require 'rspec/matchers'
|
4
5
|
require 'rspec/webservice_matchers/util'
|
6
|
+
require 'validated_object'
|
5
7
|
|
6
8
|
module RSpec
|
7
9
|
module WebserviceMatchers
|
8
10
|
module BeFast
|
11
|
+
|
12
|
+
class TestResult < ValidatedObject::Base
|
13
|
+
attr_accessor :success, :score
|
14
|
+
alias success? success
|
15
|
+
|
16
|
+
validates :success, inclusion: [true, false]
|
17
|
+
validates :score, inclusion: (0..100)
|
18
|
+
end
|
19
|
+
|
20
|
+
|
9
21
|
def self.parse(json:)
|
10
22
|
response = JSON.parse(json)
|
11
23
|
unless response.key?('ruleGroups')
|
@@ -29,12 +41,21 @@ module RSpec
|
|
29
41
|
BeFast.parse(json: response.body).fetch(:score)
|
30
42
|
end
|
31
43
|
|
44
|
+
def self.test(url:)
|
45
|
+
TestResult.new do |r|
|
46
|
+
r.score = BeFast.page_speed_score(url: url)
|
47
|
+
r.success = r.score >= 85
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
32
52
|
RSpec::Matchers.define :be_fast do
|
33
53
|
score = nil
|
34
54
|
|
35
55
|
match do |url|
|
36
|
-
|
37
|
-
score
|
56
|
+
result = BeFast.test(url: url)
|
57
|
+
score = result.score
|
58
|
+
result.success?
|
38
59
|
end
|
39
60
|
|
40
61
|
failure_message do
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'rspec/matchers'
|
2
3
|
require 'rspec/webservice_matchers/util'
|
3
4
|
require 'validated_object'
|
4
5
|
|
@@ -18,7 +19,7 @@ module RSpec
|
|
18
19
|
|
19
20
|
def self.test(url:nil, domain:nil)
|
20
21
|
raise 'Must specify a url or domain' if url.nil? && domain.nil?
|
21
|
-
|
22
|
+
|
22
23
|
TestResult.new do |r|
|
23
24
|
r.status_code = Util.status(url || domain, follow: true)
|
24
25
|
r.success = (r.status_code == 200)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'rspec/webservice_matchers/be_fast'
|
4
|
+
include RSpec::WebserviceMatchers
|
5
|
+
|
6
|
+
describe BeFast do
|
7
|
+
describe BeFast::TestResult do
|
8
|
+
it 'requires :success' do
|
9
|
+
expect {
|
10
|
+
BeFast::TestResult.new {}
|
11
|
+
}.to raise_error(ArgumentError, /success/i)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'requires :score' do
|
15
|
+
expect {
|
16
|
+
BeFast::TestResult.new { |r| r.success = true }
|
17
|
+
}.to raise_error(ArgumentError, /score/i)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#test' do
|
22
|
+
it 'handles a fast site' do
|
23
|
+
result = BeFast.test url: 'http://nonstop.qa'
|
24
|
+
expect( result.success? ).to be true
|
25
|
+
expect( result.score ).to be >= 85
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
require 'rspec/webservice_matchers/be_up'
|
4
4
|
|
5
|
-
include RSpec::WebserviceMatchers
|
5
|
+
include RSpec::WebserviceMatchers
|
6
6
|
|
7
|
-
describe
|
7
|
+
describe BeUp do
|
8
8
|
describe '#test' do
|
9
9
|
it 'handles a simple 200' do
|
10
10
|
result = BeUp.test url: 'http://www.website.com/'
|
@@ -26,30 +26,30 @@ describe RSpec::WebserviceMatchers::BeUp do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
|
29
|
-
describe TestResult do
|
29
|
+
describe BeUp::TestResult do
|
30
30
|
it 'requires :success' do
|
31
31
|
expect {
|
32
|
-
TestResult.new { |r| r.status_code = 200 }
|
32
|
+
BeUp::TestResult.new { |r| r.status_code = 200 }
|
33
33
|
}.to raise_error(ArgumentError)
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'requires :status_code' do
|
37
37
|
expect {
|
38
|
-
TestResult.new { |r| r.success = true }
|
38
|
+
BeUp::TestResult.new { |r| r.success = true }
|
39
39
|
}.to raise_error(ArgumentError)
|
40
40
|
end
|
41
41
|
|
42
42
|
it 'accepts boolean :success & integer :status_code' do
|
43
|
-
result = TestResult.new do |r|
|
43
|
+
result = BeUp::TestResult.new do |r|
|
44
44
|
r.status_code = 404
|
45
45
|
r.success = false
|
46
46
|
end
|
47
|
-
expect( result ).to be_an_instance_of(TestResult)
|
47
|
+
expect( result ).to be_an_instance_of(BeUp::TestResult)
|
48
48
|
end
|
49
49
|
|
50
50
|
it 'requires boolean :success' do
|
51
51
|
expect {
|
52
|
-
TestResult.new do |r|
|
52
|
+
BeUp::TestResult.new do |r|
|
53
53
|
r.status_code = 200
|
54
54
|
r.success = 1
|
55
55
|
end
|
@@ -58,7 +58,7 @@ describe RSpec::WebserviceMatchers::BeUp do
|
|
58
58
|
|
59
59
|
it 'requires integer :status_code' do
|
60
60
|
expect {
|
61
|
-
TestResult.new do |r|
|
61
|
+
BeUp::TestResult.new do |r|
|
62
62
|
r.status_code = '404'
|
63
63
|
r.success = false
|
64
64
|
end
|
@@ -67,7 +67,7 @@ describe RSpec::WebserviceMatchers::BeUp do
|
|
67
67
|
|
68
68
|
it 'cannot have status < 100' do
|
69
69
|
expect {
|
70
|
-
TestResult.new do |r|
|
70
|
+
BeUp::TestResult.new do |r|
|
71
71
|
r.status_code = -5
|
72
72
|
r.success = false
|
73
73
|
end
|
@@ -76,7 +76,7 @@ describe RSpec::WebserviceMatchers::BeUp do
|
|
76
76
|
|
77
77
|
it 'cannot have status > 510' do
|
78
78
|
expect {
|
79
|
-
TestResult.new do |r|
|
79
|
+
BeUp::TestResult.new do |r|
|
80
80
|
r.status_code = 511
|
81
81
|
r.success = false
|
82
82
|
end
|
@@ -84,11 +84,11 @@ describe RSpec::WebserviceMatchers::BeUp do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
it 'allows status 510' do
|
87
|
-
result = TestResult.new do |r|
|
87
|
+
result = BeUp::TestResult.new do |r|
|
88
88
|
r.status_code = 510
|
89
89
|
r.success = false
|
90
90
|
end
|
91
|
-
expect( result ).to be_an_instance_of(TestResult)
|
91
|
+
expect( result ).to be_an_instance_of(BeUp::TestResult)
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-webservice_matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robb Shecter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -177,6 +177,7 @@ files:
|
|
177
177
|
- lib/rspec/webservice_matchers/version.rb
|
178
178
|
- rspec-webservice_matchers.gemspec
|
179
179
|
- spec/fixtures/pagespeed.json
|
180
|
+
- spec/rspec/webservice_matchers/be_fast_spec.rb
|
180
181
|
- spec/rspec/webservice_matchers/be_up_spec.rb
|
181
182
|
- spec/rspec/webservice_matchers/page_speed_spec.rb
|
182
183
|
- spec/rspec/webservice_matchers/protcol_spec.rb
|
@@ -210,6 +211,7 @@ specification_version: 4
|
|
210
211
|
summary: Black-box web app configuration testing
|
211
212
|
test_files:
|
212
213
|
- spec/fixtures/pagespeed.json
|
214
|
+
- spec/rspec/webservice_matchers/be_fast_spec.rb
|
213
215
|
- spec/rspec/webservice_matchers/be_up_spec.rb
|
214
216
|
- spec/rspec/webservice_matchers/page_speed_spec.rb
|
215
217
|
- spec/rspec/webservice_matchers/protcol_spec.rb
|