From 0fd4a6b637e30adc9855e7cea1c53c4767fcefcb Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Sat, 15 Jul 2017 01:43:26 +0800 Subject: Introduce have_gitlab_http_status So that whenever this failed: expect(response).to have_gitlab_http_status(200) We see what's the response there. Here's an example: ``` 1) API::Settings Settings PUT /application/settings custom repository storage type set in the config updates application settings Failure/Error: expect(response).to have_gitlab_http_status(200) expected the response to have status code 200 but it was 400. The response was: {"error":"password_authentication_enabled, signin_enabled are mutually exclusive"} ``` --- spec/support/matchers/have_gitlab_http_status.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 spec/support/matchers/have_gitlab_http_status.rb (limited to 'spec/support/matchers') diff --git a/spec/support/matchers/have_gitlab_http_status.rb b/spec/support/matchers/have_gitlab_http_status.rb new file mode 100644 index 00000000000..3198f1b9edd --- /dev/null +++ b/spec/support/matchers/have_gitlab_http_status.rb @@ -0,0 +1,14 @@ +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| + "expected the response to have status code #{expected.inspect}" \ + " but it was #{actual.response_code}. The response was: #{actual.body}" + end +end -- cgit v1.2.1