http_stub 0.24.3 → 0.25.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/lib/http_stub.rb +8 -2
- data/lib/http_stub/server/application/application.rb +16 -4
- data/lib/http_stub/server/request/request.rb +6 -1
- data/lib/http_stub/server/response.rb +5 -3
- data/lib/http_stub/server/scenario/controller.rb +2 -2
- data/lib/http_stub/server/scenario/parser.rb +1 -3
- data/lib/http_stub/server/stub/controller.rb +8 -6
- data/lib/http_stub/server/stub/empty.rb +9 -5
- data/lib/http_stub/server/stub/match/controller.rb +22 -0
- data/lib/http_stub/server/stub/match/{result.rb → match.rb} +9 -1
- data/lib/http_stub/server/stub/match/miss.rb +19 -0
- data/lib/http_stub/server/stub/match/rules.rb +33 -0
- data/lib/http_stub/server/stub/parser.rb +1 -1
- data/lib/http_stub/server/stub/payload.rb +20 -0
- data/lib/http_stub/server/stub/payload/base_uri_modifier.rb +17 -0
- data/lib/http_stub/server/stub/payload/response_body_modifier.rb +19 -0
- data/lib/http_stub/server/stub/response/base.rb +5 -1
- data/lib/http_stub/server/stub/response/file.rb +5 -0
- data/lib/http_stub/server/stub/response/text.rb +4 -0
- data/lib/http_stub/server/stub/stub.rb +8 -18
- data/lib/http_stub/server/stub/triggers.rb +1 -1
- data/lib/http_stub/server/views/_activate_scenario.haml +17 -4
- data/lib/http_stub/server/views/_stub.haml +2 -2
- data/lib/http_stub/server/views/{_match.haml → _stub_match.haml} +1 -1
- data/lib/http_stub/server/views/_stub_miss.haml +3 -0
- data/lib/http_stub/server/views/index.haml +4 -2
- data/lib/http_stub/server/views/stub_matches.haml +4 -0
- data/lib/http_stub/server/views/stub_misses.haml +4 -0
- data/lib/http_stub/version.rb +1 -1
- data/spec/acceptance/stub_match_last_spec.rb +170 -0
- data/spec/acceptance/stub_match_list_spec.rb +115 -0
- data/spec/acceptance/stub_miss_list_spec.rb +58 -0
- data/spec/lib/http_stub/server/application/application_spec.rb +57 -13
- data/spec/lib/http_stub/server/request/request_spec.rb +41 -1
- data/spec/lib/http_stub/server/response_spec.rb +18 -12
- data/spec/lib/http_stub/server/scenario/controller_spec.rb +4 -4
- data/spec/lib/http_stub/server/scenario/parser_spec.rb +30 -27
- data/spec/lib/http_stub/server/stub/controller_spec.rb +45 -26
- data/spec/lib/http_stub/server/stub/empty_spec.rb +14 -14
- data/spec/lib/http_stub/server/stub/match/controller_spec.rb +69 -0
- data/spec/lib/http_stub/server/stub/match/match_spec.rb +146 -0
- data/spec/lib/http_stub/server/stub/match/miss_spec.rb +15 -0
- data/spec/lib/http_stub/server/stub/match/rules_spec.rb +247 -0
- data/spec/lib/http_stub/server/stub/parser_spec.rb +12 -14
- data/spec/lib/http_stub/server/stub/payload/base_uri_modifier_spec.rb +23 -0
- data/spec/lib/http_stub/server/{payload_file_consolidator_spec.rb → stub/payload/response_body_modifier_spec.rb} +22 -14
- data/spec/lib/http_stub/server/stub/payload_spec.rb +33 -0
- data/spec/lib/http_stub/server/stub/response/base_spec.rb +22 -0
- data/spec/lib/http_stub/server/stub/response/file_spec.rb +29 -1
- data/spec/lib/http_stub/server/stub/response/text_spec.rb +18 -0
- data/spec/lib/http_stub/server/stub/stub_spec.rb +48 -145
- data/spec/lib/http_stub/server/stub/triggers_spec.rb +14 -0
- data/spec/spec_helper.rb +7 -3
- data/spec/support/{configurer_integration.rb → http_stub/configurer_integration.rb} +3 -2
- data/spec/support/http_stub/html_view_excluding_request_details.rb +11 -0
- data/spec/support/http_stub/html_view_including_request_details.rb +47 -0
- data/spec/support/http_stub/server/scenario/scenario_fixture.rb +1 -1
- data/spec/support/http_stub/server/stub/match/match_fixture.rb +21 -0
- data/spec/support/http_stub/server/stub/match/miss_fixture.rb +17 -0
- data/spec/support/{server_integration.rb → http_stub/server_integration.rb} +0 -0
- data/spec/support/http_stub/stub_fixture.rb +1 -0
- data/spec/support/http_stub/stub_registrator.rb +83 -0
- metadata +47 -19
- data/lib/http_stub/server/stub/payload_file_consolidator.rb +0 -18
- data/lib/http_stub/server/views/_miss.haml +0 -7
- data/lib/http_stub/server/views/match_results.haml +0 -7
- data/spec/acceptance/stub_match_spec.rb +0 -252
- data/spec/lib/http_stub/server/stub/match/result_spec.rb +0 -33
- data/spec/support/http_stub/server/stub/match/result_fixture.rb +0 -19
@@ -1,10 +1,23 @@
|
|
1
|
-
%form{ id: :activate_scenario_form, action: "scenarios/activate", method: "POST" }
|
2
|
-
%input{ id: :activated_scenario_name, name: :name, type: :hidden, value: "" }
|
3
1
|
:javascript
|
4
2
|
$(window).load(function() {
|
5
3
|
$("a.activate_scenario").on("click", function(event) {
|
6
4
|
event.preventDefault();
|
7
|
-
$(
|
8
|
-
|
5
|
+
var button = $(event.target)
|
6
|
+
button.prop("disabled", true);
|
7
|
+
$.post(
|
8
|
+
"scenarios/activate", { name: button.data("name") }, null, "html"
|
9
|
+
).done(
|
10
|
+
function() {
|
11
|
+
button.html("Activated").css("color", "green");
|
12
|
+
setTimeout(function() { button.html("Activate").css("color", "inherit"); }, 3000);
|
13
|
+
}
|
14
|
+
).fail(
|
15
|
+
function() {
|
16
|
+
button.html("Failed").css("color", "red");
|
17
|
+
setTimeout(function() { button.html("Activate").css("color", "inherit"); }, 3000);
|
18
|
+
}
|
19
|
+
).always(
|
20
|
+
function() { button.prop("disabled", false); }
|
21
|
+
);
|
9
22
|
});
|
10
23
|
});
|
@@ -1,6 +1,8 @@
|
|
1
1
|
%h1 http_stub diagnostics
|
2
|
+
%a{ href: "/http_stub/scenarios", id: :scenarios, class: :link } List Scenarios
|
3
|
+
%br
|
2
4
|
%a{ href: "/http_stub/stubs", id: :stubs, class: :link } List Stubs
|
3
5
|
%br
|
4
|
-
%a{ href: "/http_stub/
|
6
|
+
%a{ href: "/http_stub/stubs/matches", id: :stub_matches, class: :link } List Stub Matches
|
5
7
|
%br
|
6
|
-
%a{ href: "/http_stub/stubs/
|
8
|
+
%a{ href: "/http_stub/stubs/misses", id: :stub_misses, class: :link } List Stub Misses
|
data/lib/http_stub/version.rb
CHANGED
@@ -0,0 +1,170 @@
|
|
1
|
+
describe "Stub matches last acceptance" do
|
2
|
+
include_context "configurer integration"
|
3
|
+
|
4
|
+
before(:example) { configurer.initialize! }
|
5
|
+
|
6
|
+
after(:example) { configurer.clear_stubs! }
|
7
|
+
|
8
|
+
describe "GET /http_stub/stubs/matches/last" do
|
9
|
+
|
10
|
+
let(:request_uri) { stub_registrator.request_uri }
|
11
|
+
let(:request_method) { stub_registrator.request_method }
|
12
|
+
let(:request_parameters) { { uri: request_uri, method: request_method } }
|
13
|
+
let(:response) { HTTParty.get("#{server_uri}/http_stub/stubs/matches/last", query: request_parameters) }
|
14
|
+
let(:json_response) { JSON.parse(response.body) }
|
15
|
+
|
16
|
+
before(:example) { configure_stub_registrator }
|
17
|
+
|
18
|
+
context "when a request has been made matching a stub" do
|
19
|
+
|
20
|
+
before(:example) do
|
21
|
+
stub_registrator.register_stub
|
22
|
+
|
23
|
+
stub_registrator.issue_matching_request
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns a 200 response" do
|
27
|
+
expect(response.code).to eql(200)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "returns JSON containing the requests uri" do
|
31
|
+
expect_match_request_to_include("uri" => request_uri)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "returns JSON containing the requests method" do
|
35
|
+
expect_match_request_to_include("method" => request_method)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns JSON containing the requests headers whose names are in uppercase" do
|
39
|
+
stub_registrator.request_headers.each do |header_key, expected_header_value|
|
40
|
+
expect_match_request_to_include("headers" => hash_including(header_key.upcase => expected_header_value))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "when the request contains parameters" do
|
45
|
+
|
46
|
+
def configure_stub_registrator
|
47
|
+
stub_registrator.with_request_parameters
|
48
|
+
end
|
49
|
+
|
50
|
+
it "returns JSON containing the requests parameters" do
|
51
|
+
stub_registrator.request_parameters.each do |expected_parameter_key, expected_parameter_value|
|
52
|
+
expect_match_request_to_include(
|
53
|
+
"parameters" => hash_including(expected_parameter_key => expected_parameter_value)
|
54
|
+
)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
context "when the request contains a body" do
|
61
|
+
|
62
|
+
def configure_stub_registrator
|
63
|
+
stub_registrator.with_request_body
|
64
|
+
end
|
65
|
+
|
66
|
+
it "returns JSON containing the requests body" do
|
67
|
+
expect_match_request_to_include("body" => stub_registrator.request_body)
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns JSON containing the matches response status" do
|
73
|
+
expect_match_response_to_include("status" => stub_registrator.stub_response_status)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "returns JSON containing the matches response headers" do
|
77
|
+
stub_registrator.stub_response_headers.each do |expected_header_key, expected_header_value|
|
78
|
+
expect_match_response_to_include("headers" => hash_including(expected_header_key => expected_header_value))
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
it "returns JSON containing the matches response body" do
|
83
|
+
expect_match_response_to_include("body" => stub_registrator.stub_response_body)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "returns JSON containing the uri of the matched stub" do
|
87
|
+
expect(json_response).to include("stub" => hash_including("uri" => stub_registrator.stub_uri))
|
88
|
+
end
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
context "when a request has been made matching a stub whose response includes request references" do
|
93
|
+
|
94
|
+
before(:example) do
|
95
|
+
stub_registrator.with_request_parameters
|
96
|
+
stub_registrator.with_request_interpolation
|
97
|
+
|
98
|
+
stub_registrator.register_stub
|
99
|
+
|
100
|
+
stub_registrator.issue_matching_request
|
101
|
+
end
|
102
|
+
|
103
|
+
it "returns a 200 response" do
|
104
|
+
expect(response.code).to eql(200)
|
105
|
+
end
|
106
|
+
|
107
|
+
it "returns JSON containing the matches response headers with interpolated request references" do
|
108
|
+
expected_stub_response_headers = {
|
109
|
+
"header_reference" => "request header value 2",
|
110
|
+
"parameter_reference" => "parameter value 2"
|
111
|
+
}
|
112
|
+
|
113
|
+
expected_stub_response_headers.each do |expected_header_key, expected_header_value|
|
114
|
+
expect_match_response_to_include("headers" => hash_including(expected_header_key => expected_header_value))
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
it "returns JSON containing the matches response body with interpolated request references" do
|
119
|
+
expected_stub_response_body = "header: request header value 3, parameter: parameter value 3"
|
120
|
+
|
121
|
+
expect_match_response_to_include("body" => expected_stub_response_body)
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
context "when a request has been made that does not match a stub" do
|
127
|
+
|
128
|
+
before(:example) { stub_registrator.issue_matching_request }
|
129
|
+
|
130
|
+
it "returns a 404 response" do
|
131
|
+
expect(response.code).to eql(404)
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
136
|
+
context "when a request has been made configuring a stub" do
|
137
|
+
|
138
|
+
before(:example) { stub_registrator.register_stub }
|
139
|
+
|
140
|
+
it "returns a 404 response" do
|
141
|
+
expect(response.code).to eql(404)
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
context "when a request has been made configuring a scenario" do
|
147
|
+
|
148
|
+
before(:example) { stub_registrator.register_scenario }
|
149
|
+
|
150
|
+
it "returns a 404 response" do
|
151
|
+
expect(response.code).to eql(404)
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
|
156
|
+
def configure_stub_registrator
|
157
|
+
# intentionally blank
|
158
|
+
end
|
159
|
+
|
160
|
+
def expect_match_request_to_include(hash)
|
161
|
+
expect(json_response).to(include("request" => hash_including(hash)))
|
162
|
+
end
|
163
|
+
|
164
|
+
def expect_match_response_to_include(hash)
|
165
|
+
expect(json_response).to(include("response" => hash_including(hash)))
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
describe "Stub match list acceptance" do
|
2
|
+
include_context "configurer integration"
|
3
|
+
|
4
|
+
before(:example) { configurer.initialize! }
|
5
|
+
|
6
|
+
after(:example) { configurer.clear_stubs! }
|
7
|
+
|
8
|
+
describe "GET /http_stub/stubs/matches" do
|
9
|
+
|
10
|
+
let(:response) { HTTParty.get("#{server_uri}/http_stub/stubs/matches") }
|
11
|
+
let(:response_document) { Nokogiri::HTML(response.body) }
|
12
|
+
|
13
|
+
before(:example) { configure_stub_registrator }
|
14
|
+
|
15
|
+
context "when a request has been made matching a stub" do
|
16
|
+
|
17
|
+
before(:example) do
|
18
|
+
stub_registrator.register_stub
|
19
|
+
|
20
|
+
stub_registrator.issue_matching_request
|
21
|
+
end
|
22
|
+
|
23
|
+
include_context "HTML view including request details"
|
24
|
+
|
25
|
+
it "returns a response body that contains stub response status" do
|
26
|
+
expect(response.body).to match(/#{escape_html(stub_registrator.stub_response_status)}/)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "returns a response body that contains stub response headers" do
|
30
|
+
stub_registrator.stub_response_headers.each do |expected_header_key, expected_header_value|
|
31
|
+
expect(response.body).to match(/#{expected_header_key}:#{expected_header_value}/)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it "returns a response body that contains stub response body" do
|
36
|
+
expect(response.body).to match(/#{escape_html(stub_registrator.stub_response_body)}/)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "returns a response body that contains a link to the matched stub" do
|
40
|
+
stub_link = response_document.css("a.stub").first
|
41
|
+
expect(stub_registrator.stub_uri).to end_with(stub_link["href"])
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
context "when a request has been made matching a stub whose response includes request references" do
|
47
|
+
|
48
|
+
before(:example) do
|
49
|
+
stub_registrator.with_request_parameters
|
50
|
+
stub_registrator.with_request_interpolation
|
51
|
+
|
52
|
+
stub_registrator.register_stub
|
53
|
+
|
54
|
+
stub_registrator.issue_matching_request
|
55
|
+
end
|
56
|
+
|
57
|
+
it "returns a response body that contains stub response status" do
|
58
|
+
expect(response.body).to match(/#{stub_registrator.stub_response_status}/)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns a response body that contains stub response headers with interpolated request references" do
|
62
|
+
expected_stub_response_headers = {
|
63
|
+
header_reference: "request header value 2",
|
64
|
+
parameter_reference: "parameter value 2"
|
65
|
+
}
|
66
|
+
|
67
|
+
expected_stub_response_headers.each do |expected_header_key, expected_header_value|
|
68
|
+
expect(response.body).to match(/#{expected_header_key}:#{expected_header_value}/)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it "returns a response body that contains stub response body with interpolated request references" do
|
73
|
+
expected_stub_response_body = "header: request header value 3, parameter: parameter value 3"
|
74
|
+
|
75
|
+
expect(response.body).to match(/#{escape_html(expected_stub_response_body)}/)
|
76
|
+
end
|
77
|
+
|
78
|
+
it "returns a response body that contains a link to the matched stub" do
|
79
|
+
stub_link = response_document.css("a.stub").first
|
80
|
+
expect(stub_registrator.stub_uri).to end_with(stub_link["href"])
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
context "when a request has been made that does not match a stub" do
|
86
|
+
|
87
|
+
before(:example) { stub_registrator.issue_matching_request }
|
88
|
+
|
89
|
+
include_context "HTML view excluding request details"
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
context "when a request has been made configuring a stub" do
|
94
|
+
|
95
|
+
before(:example) { stub_registrator.register_stub }
|
96
|
+
|
97
|
+
include_context "HTML view excluding request details"
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
context "when a request has been made configuring a scenario" do
|
102
|
+
|
103
|
+
before(:example) { stub_registrator.register_scenario }
|
104
|
+
|
105
|
+
include_context "HTML view excluding request details"
|
106
|
+
|
107
|
+
end
|
108
|
+
|
109
|
+
def configure_stub_registrator
|
110
|
+
# intentionally blank
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
describe "Stub miss list acceptance" do
|
2
|
+
include_context "configurer integration"
|
3
|
+
|
4
|
+
before(:example) { configurer.initialize! }
|
5
|
+
|
6
|
+
after(:example) { configurer.clear_stubs! }
|
7
|
+
|
8
|
+
describe "GET /http_stub/stubs/misses" do
|
9
|
+
|
10
|
+
let(:response) { HTTParty.get("#{server_uri}/http_stub/stubs/misses") }
|
11
|
+
let(:response_document) { Nokogiri::HTML(response.body) }
|
12
|
+
|
13
|
+
before(:example) { configure_stub_registrator }
|
14
|
+
|
15
|
+
context "when a request has been made that does not match a stub" do
|
16
|
+
|
17
|
+
before(:example) { stub_registrator.issue_matching_request }
|
18
|
+
|
19
|
+
include_context "HTML view including request details"
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
context "when a request has been made matching a stub" do
|
24
|
+
|
25
|
+
before(:example) do
|
26
|
+
stub_registrator.register_stub
|
27
|
+
|
28
|
+
stub_registrator.issue_matching_request
|
29
|
+
end
|
30
|
+
|
31
|
+
include_context "HTML view excluding request details"
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
context "when a request has been made configuring a stub" do
|
36
|
+
|
37
|
+
before(:example) { stub_registrator.register_stub }
|
38
|
+
|
39
|
+
|
40
|
+
include_context "HTML view excluding request details"
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
context "when a request has been made configuring a scenario" do
|
45
|
+
|
46
|
+
before(:example) { stub_registrator.register_scenario }
|
47
|
+
|
48
|
+
include_context "HTML view excluding request details"
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def configure_stub_registrator
|
53
|
+
# intentionally blank
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -4,23 +4,27 @@ describe HttpStub::Server::Application::Application do
|
|
4
4
|
let(:response) { last_response }
|
5
5
|
let(:response_body) { response.body.to_s }
|
6
6
|
|
7
|
-
let(:
|
8
|
-
let(:stub_registry)
|
9
|
-
let(:
|
7
|
+
let(:scenario_registry) { instance_double(HttpStub::Server::Registry) }
|
8
|
+
let(:stub_registry) { instance_double(HttpStub::Server::Stub::Registry) }
|
9
|
+
let(:stub_match_registry) { instance_double(HttpStub::Server::Registry) }
|
10
|
+
let(:stub_miss_registry) { instance_double(HttpStub::Server::Registry) }
|
10
11
|
|
11
|
-
let(:
|
12
|
-
let(:
|
12
|
+
let(:scenario_controller) { instance_double(HttpStub::Server::Scenario::Controller) }
|
13
|
+
let(:stub_controller) { instance_double(HttpStub::Server::Stub::Controller) }
|
14
|
+
let(:stub_match_controller) { instance_double(HttpStub::Server::Stub::Match::Controller) }
|
13
15
|
|
14
16
|
let(:response_pipeline) { instance_double(HttpStub::Server::Application::ResponsePipeline, process: nil) }
|
15
17
|
|
16
18
|
let(:app) { HttpStub::Server::Application::Application.new! }
|
17
19
|
|
18
20
|
before(:example) do
|
19
|
-
allow(HttpStub::Server::Registry).to receive(:new).with("match result").and_return(match_result_registry)
|
20
21
|
allow(HttpStub::Server::Registry).to receive(:new).with("scenario").and_return(scenario_registry)
|
21
22
|
allow(HttpStub::Server::Stub::Registry).to receive(:new).and_return(stub_registry)
|
22
|
-
allow(HttpStub::Server::
|
23
|
+
allow(HttpStub::Server::Registry).to receive(:new).with("stub match").and_return(stub_match_registry)
|
24
|
+
allow(HttpStub::Server::Registry).to receive(:new).with("stub miss").and_return(stub_miss_registry)
|
23
25
|
allow(HttpStub::Server::Scenario::Controller).to receive(:new).and_return(scenario_controller)
|
26
|
+
allow(HttpStub::Server::Stub::Controller).to receive(:new).and_return(stub_controller)
|
27
|
+
allow(HttpStub::Server::Stub::Match::Controller).to receive(:new).and_return(stub_match_controller)
|
24
28
|
allow(HttpStub::Server::Application::ResponsePipeline).to receive(:new).and_return(response_pipeline)
|
25
29
|
end
|
26
30
|
|
@@ -149,14 +153,54 @@ describe HttpStub::Server::Application::Application do
|
|
149
153
|
|
150
154
|
end
|
151
155
|
|
152
|
-
context "when a request to list the matches is received" do
|
156
|
+
context "when a request to list the stub matches is received" do
|
153
157
|
|
154
|
-
let(:
|
158
|
+
let(:found_matches) { [ HttpStub::Server::Stub::Match::MatchFixture.create ] }
|
155
159
|
|
156
160
|
subject { get "/http_stub/stubs/matches" }
|
157
161
|
|
158
|
-
it "retrieves the
|
159
|
-
expect(
|
162
|
+
it "retrieves the matches from the match registry" do
|
163
|
+
expect(stub_match_registry).to receive(:all).and_return(found_matches)
|
164
|
+
|
165
|
+
subject
|
166
|
+
end
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
context "when a request to retrieve the last match for an endpoint is received" do
|
171
|
+
|
172
|
+
let(:uri) { "/some/matched/uri" }
|
173
|
+
let(:method) { "some http method" }
|
174
|
+
let(:last_match_response) { instance_double(HttpStub::Server::Stub::Response::Base) }
|
175
|
+
|
176
|
+
subject { get "/http_stub/stubs/matches/last", "uri" => uri, "method" => method }
|
177
|
+
|
178
|
+
before(:example) { allow(stub_match_controller).to receive(:find_last).and_return(last_match_response) }
|
179
|
+
|
180
|
+
it "retrieves the last match from the match result registry for the provided request" do
|
181
|
+
expect(stub_match_controller).to(
|
182
|
+
receive(:find_last).with(an_instance_of(HttpStub::Server::Request::Request), anything)
|
183
|
+
)
|
184
|
+
|
185
|
+
subject
|
186
|
+
end
|
187
|
+
|
188
|
+
it "processes the match result controllers response via the response pipeline" do
|
189
|
+
expect(response_pipeline).to receive(:process).with(last_match_response)
|
190
|
+
|
191
|
+
subject
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
195
|
+
|
196
|
+
context "when a request to list the stub misses is received" do
|
197
|
+
|
198
|
+
let(:found_misses) { [ HttpStub::Server::Stub::Match::MissFixture.create ] }
|
199
|
+
|
200
|
+
subject { get "/http_stub/stubs/misses" }
|
201
|
+
|
202
|
+
it "retrieves the misses from the miss registry" do
|
203
|
+
expect(stub_miss_registry).to receive(:all).and_return(found_misses)
|
160
204
|
|
161
205
|
subject
|
162
206
|
end
|
@@ -195,7 +239,7 @@ describe HttpStub::Server::Application::Application do
|
|
195
239
|
context "when a request to show a scenario is received" do
|
196
240
|
|
197
241
|
let(:scenario_name) { "Some scenario name" }
|
198
|
-
let(:found_scenario) { HttpStub::Server::Scenario::ScenarioFixture.
|
242
|
+
let(:found_scenario) { HttpStub::Server::Scenario::ScenarioFixture.create }
|
199
243
|
|
200
244
|
subject { get "/http_stub/scenarios?#{URI.encode_www_form(:name => scenario_name)}" }
|
201
245
|
|
@@ -209,7 +253,7 @@ describe HttpStub::Server::Application::Application do
|
|
209
253
|
|
210
254
|
context "when a request to list the scenarios is received" do
|
211
255
|
|
212
|
-
let(:found_scenarios) { [ HttpStub::Server::Scenario::ScenarioFixture.
|
256
|
+
let(:found_scenarios) { [ HttpStub::Server::Scenario::ScenarioFixture.create ] }
|
213
257
|
|
214
258
|
subject { get "/http_stub/scenarios" }
|
215
259
|
|