Module: HttpDecoy::RSpec::ClassMethods
- Defined in:
- lib/http_decoy/rspec.rb
Instance Method Summary collapse
-
#_http_decoy_register(name, route_map) ⇒ Object
Internal: register before/after hooks for a pre-built RouteMap.
-
#fake_server(name) ⇒ Object
Class-level macro.
Instance Method Details
#_http_decoy_register(name, route_map) ⇒ Object
Internal: register before/after hooks for a pre-built RouteMap. Called by both the inline macro and Definition#rspec_helpers.
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/http_decoy/rspec.rb', line 62 def _http_decoy_register(name, route_map) before(:each) do server = Server.new(route_map) server.start stub = WebMockIntegration.setup(server) @_http_decoy_servers ||= {} @_http_decoy_webmock_stubs ||= {} @_http_decoy_servers[name] = server @_http_decoy_webmock_stubs[name] = stub end after(:each) do server = @_http_decoy_servers&.[](name) stub = @_http_decoy_webmock_stubs&.[](name) WebMockIntegration.teardown(stub) server&.stop end end |
#fake_server(name) ⇒ Object
Class-level macro. Evaluates the block into a RouteMap once at class-load time, then registers before/after hooks for per-example server lifecycle.
54 55 56 57 58 |
# File 'lib/http_decoy/rspec.rb', line 54 def fake_server(name, &) route_map = RouteMap.new route_map.instance_eval(&) _http_decoy_register(name, route_map) end |