http_stub 0.21.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/lib/http_stub.rb +2 -1
- data/lib/http_stub/configurer/dsl/scenario_builder.rb +4 -4
- data/lib/http_stub/configurer/request/http/factory.rb +2 -2
- data/lib/http_stub/configurer/server/facade.rb +19 -9
- data/lib/http_stub/server/application.rb +22 -12
- data/lib/http_stub/server/{views → public}/favicon.ico +0 -0
- data/lib/http_stub/server/public/jquery-2.2.1.min.js +4 -0
- data/lib/http_stub/server/scenario/activator.rb +3 -3
- data/lib/http_stub/server/scenario/controller.rb +3 -3
- data/lib/http_stub/server/scenario/links.rb +22 -0
- data/lib/http_stub/server/scenario/scenario.rb +14 -11
- data/lib/http_stub/server/scenario/trigger.rb +18 -0
- data/lib/http_stub/server/stub/controller.rb +1 -1
- data/lib/http_stub/server/stub/registry.rb +2 -2
- data/lib/http_stub/server/views/_activate_scenario.haml +10 -0
- data/lib/http_stub/server/views/application.sass +4 -0
- data/lib/http_stub/server/views/index.haml +6 -0
- data/lib/http_stub/server/views/layout.haml +3 -2
- data/lib/http_stub/server/views/matches.haml +1 -0
- data/lib/http_stub/server/views/{_scenario.haml → scenario.haml} +4 -3
- data/lib/http_stub/server/views/scenarios.haml +10 -3
- data/lib/http_stub/server/views/stubs.haml +1 -0
- data/lib/http_stub/version.rb +1 -1
- data/spec/acceptance/endpoint_template_spec.rb +2 -2
- data/spec/acceptance/scenario_spec.rb +3 -3
- data/spec/lib/http_stub/configurer/request/http/factory_spec.rb +24 -4
- data/spec/lib/http_stub/configurer/request/scenario_spec.rb +2 -2
- data/spec/lib/http_stub/configurer/server/facade_spec.rb +18 -8
- data/spec/lib/http_stub/server/application_integration_spec.rb +270 -111
- data/spec/lib/http_stub/server/application_spec.rb +81 -15
- data/spec/lib/http_stub/server/scenario/activator_spec.rb +8 -3
- data/spec/lib/http_stub/server/scenario/controller_spec.rb +9 -7
- data/spec/lib/http_stub/server/scenario/links_spec.rb +41 -0
- data/spec/lib/http_stub/server/scenario/scenario_spec.rb +72 -30
- data/spec/lib/http_stub/server/scenario/trigger_spec.rb +36 -0
- data/spec/lib/http_stub/server/stub/controller_spec.rb +2 -2
- data/spec/lib/http_stub/server/stub/registry_spec.rb +23 -9
- data/spec/spec_helper.rb +1 -1
- data/spec/support/http_stub/scenario_fixture.rb +3 -3
- metadata +334 -342
- data/lib/http_stub/server/request_pipeline.rb +0 -27
- data/spec/lib/http_stub/server/request_pipeline_spec.rb +0 -80
@@ -1,27 +0,0 @@
|
|
1
|
-
module HttpStub
|
2
|
-
module Server
|
3
|
-
|
4
|
-
class RequestPipeline
|
5
|
-
|
6
|
-
def initialize(stub_controller, scenario_controller, match_registry)
|
7
|
-
@stub_controller = stub_controller
|
8
|
-
@scenario_controller = scenario_controller
|
9
|
-
@match_registry = match_registry
|
10
|
-
end
|
11
|
-
|
12
|
-
def process(request, logger)
|
13
|
-
response = @stub_controller.replay(request, logger)
|
14
|
-
response = @scenario_controller.activate(request, logger) if response.empty?
|
15
|
-
response.empty? ? process_unmatched(request, logger) : response
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def process_unmatched(request, logger)
|
21
|
-
@match_registry.add(HttpStub::Server::Stub::Match::Match.new(nil, request), logger)
|
22
|
-
HttpStub::Server::Response::NOT_FOUND
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
describe HttpStub::Server::RequestPipeline do
|
2
|
-
|
3
|
-
let(:stub_controller) { instance_double(HttpStub::Server::Stub::Controller).as_null_object }
|
4
|
-
let(:scenario_controller) { instance_double(HttpStub::Server::Scenario::Controller).as_null_object }
|
5
|
-
let(:match_registry) { instance_double(HttpStub::Server::Stub::Registry).as_null_object }
|
6
|
-
|
7
|
-
let(:request_pipeline) { described_class.new(stub_controller, scenario_controller, match_registry) }
|
8
|
-
|
9
|
-
describe "#process" do
|
10
|
-
|
11
|
-
let(:request) { instance_double(HttpStub::Server::Request) }
|
12
|
-
let(:logger) { instance_double(Logger) }
|
13
|
-
|
14
|
-
let(:stub_response) { instance_double(HttpStub::Server::Stub::Response::Base) }
|
15
|
-
|
16
|
-
subject { request_pipeline.process(request, logger) }
|
17
|
-
|
18
|
-
before(:example) { allow(stub_controller).to receive(:replay).and_return(stub_response) }
|
19
|
-
|
20
|
-
context "when the stub controller replays a response" do
|
21
|
-
|
22
|
-
before(:example) { allow(stub_response).to receive(:empty?).and_return(false) }
|
23
|
-
|
24
|
-
it "returns the replayed response" do
|
25
|
-
expect(subject).to eql(stub_response)
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
context "when the stub controller does not replay a response" do
|
31
|
-
|
32
|
-
let(:scenario_response) { double(HttpStub::Server::Stub::Response::Base, serve_on: nil) }
|
33
|
-
|
34
|
-
before(:example) do
|
35
|
-
allow(stub_response).to receive(:empty?).and_return(true)
|
36
|
-
allow(scenario_controller).to receive(:activate).and_return(scenario_response)
|
37
|
-
end
|
38
|
-
|
39
|
-
context "but the scenario controller activates a scenario" do
|
40
|
-
|
41
|
-
before(:each) { allow(scenario_response).to receive(:empty?).and_return(false) }
|
42
|
-
|
43
|
-
it "returns the scenario response" do
|
44
|
-
expect(subject).to eql(scenario_response)
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
48
|
-
|
49
|
-
context "and the scenario controller does not activate a scenario" do
|
50
|
-
|
51
|
-
let(:stub_match) { instance_double(HttpStub::Server::Stub::Match::Match) }
|
52
|
-
|
53
|
-
before(:each) do
|
54
|
-
allow(HttpStub::Server::Stub::Match::Match).to receive(:new).and_return(stub_match)
|
55
|
-
allow(scenario_response).to receive(:empty?).and_return(true)
|
56
|
-
end
|
57
|
-
|
58
|
-
it "creates a match with no stub to indicate their was no match" do
|
59
|
-
expect(HttpStub::Server::Stub::Match::Match).to receive(:new).with(nil, request)
|
60
|
-
|
61
|
-
subject
|
62
|
-
end
|
63
|
-
|
64
|
-
it "registers the created match in the match registry" do
|
65
|
-
expect(match_registry).to receive(:add).with(stub_match, logger)
|
66
|
-
|
67
|
-
subject
|
68
|
-
end
|
69
|
-
|
70
|
-
it "returns a not found response" do
|
71
|
-
expect(subject).to eql(HttpStub::Server::Response::NOT_FOUND)
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|