|
50 | 50 | oad.validate_request(request) |
51 | 51 | end |
52 | 52 |
|
| 53 | + let(:invalid_request) do |
| 54 | + request = Rack::Request.new(Rack::MockRequest.env_for('/stuff/2t4')) |
| 55 | + oad.validate_request(request) |
| 56 | + end |
| 57 | + |
53 | 58 | let(:valid_response) do |
54 | 59 | request = Rack::Request.new(Rack::MockRequest.env_for('/stuff/24')) |
55 | 60 | response = Rack::Response.new |
|
58 | 63 | oad.validate_response(request, response) |
59 | 64 | end |
60 | 65 |
|
| 66 | + let(:invalid_response) do |
| 67 | + request = Rack::Request.new(Rack::MockRequest.env_for('/stuff/24')) |
| 68 | + response = Rack::Response.new |
| 69 | + response.content_type = 'application/json' |
| 70 | + response.write JSON.generate('foo') |
| 71 | + oad.validate_response(request, response) |
| 72 | + end |
| 73 | + |
61 | 74 | let(:valid_400_response) do |
62 | 75 | request = Rack::Request.new(Rack::MockRequest.env_for('/stuff/24')) |
63 | 76 | response = Rack::Response.new |
|
85 | 98 | expect(response.responded?).to be(true) |
86 | 99 | end |
87 | 100 |
|
| 101 | + it 'stores details about invalid responses' do |
| 102 | + plan.track_response(invalid_response) |
| 103 | + |
| 104 | + response = plan.routes.first.responses.first |
| 105 | + expect(response.responded?).to eq(true) |
| 106 | + expect(response.any_valid_response?).to eq(false) |
| 107 | + expect(response.last_error_message).to eq('Response body is invalid: value at root is not an object') |
| 108 | + end |
| 109 | + |
| 110 | + it 'stores details about invalid requests' do |
| 111 | + plan.track_request(invalid_request) |
| 112 | + |
| 113 | + request = plan.routes.first.requests.first |
| 114 | + expect(request.requested?).to eq(true) |
| 115 | + expect(request.any_valid_request?).to eq(false) |
| 116 | + expect(request.last_error_message).to eq('Path segment is invalid: value at `/id` is not an integer') |
| 117 | + end |
| 118 | + |
88 | 119 | it 'ignores unknown requests' do |
89 | 120 | request = Rack::Request.new(Rack::MockRequest.env_for('/unknown/24')) |
90 | 121 | plan.track_request(oad.validate_request(request)) |
|
0 commit comments