File: have_gitlab_http_status.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (20 lines) | stat: -rw-r--r-- 641 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# frozen_string_literal: true

RSpec::Matchers.define :have_gitlab_http_status do |expected|
  match do |actual|
    expect(actual).to have_http_status(expected)
  end

  description do
    "respond with numeric status code #{expected}"
  end

  failure_message do |actual|
    # actual can be either an ActionDispatch::TestResponse (which uses #response_code)
    # or a Capybara::Session (which uses #status_code)
    response_code = actual.try(:response_code) || actual.try(:status_code)

    "expected the response to have status code #{expected.inspect} " \
    "but it was #{response_code}. The response was: #{actual.body}"
  end
end