pacto 0.1.0 → 0.1.1

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.
data/TODO.md CHANGED
@@ -13,6 +13,7 @@
13
13
  - 'default' value to be used when it is present with an array of types
14
14
  - Support 'null' attribute type
15
15
  - Validate contract structure in a rake task. Then assume all contracts are valid.
16
+ - When a request is not OK (200), the body may not be a json. Add support to ignore the body.
16
17
 
17
18
  ## Assumptions
18
19
 
@@ -13,15 +13,15 @@ module Pacto
13
13
  end
14
14
 
15
15
  def validate(response)
16
- @errors = []
17
16
  if @definition['status'] != response.status
18
- @errors << "Invalid status: expected #{@definition['status']} but got #{response.status}"
17
+ return [ "Invalid status: expected #{@definition['status']} but got #{response.status}" ]
19
18
  end
19
+
20
20
  unless @definition['headers'].normalize_keys.subset_of?(response.headers.normalize_keys)
21
- @errors << "Invalid headers: expected #{@definition['headers'].inspect} to be a subset of #{response.headers.inspect}"
21
+ return [ "Invalid headers: expected #{@definition['headers'].inspect} to be a subset of #{response.headers.inspect}" ]
22
22
  end
23
- @errors << JSON::Validator.fully_validate(@definition['body'], response.body)
24
- @errors.flatten
23
+
24
+ JSON::Validator.fully_validate(@definition['body'], response.body)
25
25
  end
26
26
  end
27
27
  end
data/lib/pacto/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pacto
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -44,23 +44,13 @@ module Pacto
44
44
  response.validate(fake_response).should == []
45
45
  end
46
46
  end
47
- context 'when status, headers and body match' do
48
- it 'should not return any errors' do
49
- JSON::Validator.should_receive(:fully_validate).
50
- with(definition['body'], fake_response.body).
51
- and_return([])
52
-
53
- response = described_class.new(definition)
54
- response.validate(fake_response).should == []
55
- end
56
- end
57
-
47
+
58
48
  context 'when status does not match' do
59
49
  let(:status) { 500 }
60
50
 
61
51
  it 'should return a status error' do
62
- JSON::Validator.stub(:fully_validate).and_return([])
63
-
52
+ JSON::Validator.should_not_receive(:fully_validate)
53
+
64
54
  response = described_class.new(definition)
65
55
  response.validate(fake_response).should == ["Invalid status: expected #{definition['status']} but got #{status}"]
66
56
  end
@@ -70,7 +60,7 @@ module Pacto
70
60
  let(:headers) { {'Content-Type' => 'text/html'} }
71
61
 
72
62
  it 'should return a header error' do
73
- JSON::Validator.stub(:fully_validate).and_return([])
63
+ JSON::Validator.should_not_receive(:fully_validate)
74
64
 
75
65
  response = described_class.new(definition)
76
66
  response.validate(fake_response).should == ["Invalid headers: expected #{definition['headers'].inspect} to be a subset of #{headers.inspect}"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pacto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-08 00:00:00.000000000 Z
12
+ date: 2013-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: webmock