123456789101112131415161718192021222324252627282930313233 |
- # frozen_string_literal: true
- RSpec::Matchers.define :have_http_link_header do |href|
- match do |response|
- @response = response
- header_link&.href == href
- end
- match_when_negated do |response|
- response.headers['Link'].blank?
- end
- chain :for do |attributes|
- @attributes = attributes
- end
- failure_message do |response|
- "Expected `#{response.headers['Link']}` to include `href` value of `#{href}` for `#{@attributes}` but it did not."
- end
- failure_message_when_negated do
- "Expected response not to have a `Link` header but `#{response.headers['Link']}` is present."
- end
- def header_link
- LinkHeader
- .parse(@response.headers['Link'])
- .find_link(*@attributes.stringify_keys)
- end
- end
- RSpec::Matchers.define_negated_matcher :not_have_http_link_header, :have_http_link_header # Allow chaining
|