blob: ff3947c0e73b311ca67f46577053db24be33520f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# frozen_string_literal: true
# Specs for status checking.
#
# Requires an API request:
# let(:request) { get api("/projects/#{project.id}/repository/branches", user) }
RSpec.shared_examples '400 response' do
let(:message) { nil }
before do
# Fires the request
request
end
it 'returns 400' do
expect(response).to have_gitlab_http_status(:bad_request)
if message.present?
expect(json_response['message']).to eq(message)
end
end
end
RSpec.shared_examples '401 response' do
let(:message) { nil }
before do
# Fires the request
request
end
it 'returns 401' do
expect(response).to have_gitlab_http_status(:unauthorized)
if message.present?
expect(json_response['message']).to eq(message)
end
end
end
RSpec.shared_examples '403 response' do
before do
# Fires the request
request
end
it 'returns 403' do
expect(response).to have_gitlab_http_status(:forbidden)
end
end
RSpec.shared_examples '404 response' do
let(:message) { nil }
before do
# Fires the request
request
end
it 'returns 404' do
expect(response).to have_gitlab_http_status(:not_found)
expect(json_response).to be_an Object
if message.present?
expect(json_response['message']).to eq(message)
end
end
end
RSpec.shared_examples '412 response' do
let(:params) { nil }
let(:success_status) { 204 }
context 'for a modified resource' do
before do
delete request, params: params, headers: { 'HTTP_IF_UNMODIFIED_SINCE' => '1990-01-12T00:00:48-0600' }
end
it 'returns 412 with a JSON error' do
expect(response).to have_gitlab_http_status(:precondition_failed)
expect(json_response).to eq('message' => '412 Precondition Failed')
end
end
context 'for an unmodified resource' do
before do
delete request, params: params, headers: { 'HTTP_IF_UNMODIFIED_SINCE' => Time.now }
end
it 'returns 204 with an empty body' do
expect(response).to have_gitlab_http_status(success_status)
expect(response.body).to eq('') if success_status == 204
end
end
end
RSpec.shared_examples '422 response' do
let(:message) { nil }
before do
# Fires the request
request
end
it 'returns 422' do
expect(response).to have_gitlab_http_status(:unprocessable_entity)
expect(json_response).to be_an Object
if message.present?
expect(json_response['message']).to eq(message)
end
end
end
RSpec.shared_examples '503 response' do
before do
# Fires the request
request
end
it 'returns 503' do
expect(response).to have_gitlab_http_status(:service_unavailable)
end
end
|