lib/webtrap/rspec/matchers/send_request.rb in webtrap-0.0.0 vs lib/webtrap/rspec/matchers/send_request.rb in webtrap-0.0.1
- old
+ new
@@ -1,25 +1,55 @@
+# frozen_string_literal: true
+
require "webmock/rspec"
module WebTrap
module RSpec
module Matchers
+ # @api private
+ # Provides the implementation for `send_request`.
+ # Not intended to be instantiated directly.
class SendRequest
+ # @api public
+ # Specifies the XML payload of the request.
+ #
+ # The expectation will pass only if a request is sent with a payload
+ # that is considered equivalent to the reference. For further details
+ # see the {https://github.com/mbklein/equivalent-xml equivalent-xml}
+ # gem.
+ #
+ # @param xml [] The reference XML payload.
+ # @return [SendRequestWithXml]
+ # The matcher to verify that a request is with a payload equivalent
+ # to the reference.
+ def with_xml(xml)
+ SendRequestWithXml.new(xml)
+ end
+
+ # @api private
+ # Checks if the provided Proc sends an HTTP request.
+ # @param transmission_proc [Proc]
+ # The proc that should send an HTTP request.
+ # @return
+ # Whether an HTTP request was sent.
+ # @see {RSpec::Matchers::MatcherProtocol#matches?}
def matches?(transmission_proc)
perform_transmission(transmission_proc)
request_sent?
end
+ # @api private
+ # Message to be shown if the expectation fails to pass.
+ # @return [String]
def failure_message
"expected block to send an HTTP request, but nothing was sent out"
end
+ # @api private
+ # Allows the matcher to be used with block expectations.
+ # @return [TrueClass]
def supports_block_expectations?
true
- end
-
- def with_xml(xml)
- SendRequestWithXml.new(xml)
end
private
def perform_transmission(transmission_proc)