File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed
lib/travis/api/enqueue/services Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -44,6 +44,9 @@ def billing?
44
44
rescue Travis ::API ::V3 ::InsufficientAccess => e
45
45
@cause_of_denial = e . message
46
46
false
47
+ rescue Travis ::API ::V3 ::NotFound
48
+ # Owner is on a legacy plan
49
+ true
47
50
end
48
51
end
49
52
Original file line number Diff line number Diff line change 219
219
example { expect ( Sidekiq ::Client . last [ 'class' ] ) . to be == 'Travis::Hub::Sidekiq::Worker' }
220
220
end
221
221
222
+ context 'billing authorization' do
223
+ context 'billing service rejects the job' do
224
+ before do
225
+ stub_request ( :post , /http:\/ \/ localhost:9292\/ (users|organizations)\/ (.+)\/ authorize_build/ ) . to_return (
226
+ body : MultiJson . dump ( allowed : false , rejection_code : :no_build_credits ) , status : 403
227
+ )
228
+ end
229
+
230
+ it 'does not restart the job' do
231
+ post ( "/v3/job/#{ job . id } /restart" , params , headers )
232
+ expect ( last_response . status ) . to eq ( 403 )
233
+ end
234
+ end
235
+
236
+ context 'billing service returns 404 (user is not on a new plan)' do
237
+ before do
238
+ stub_request ( :post , /http:\/ \/ localhost:9292\/ (users|organizations)\/ (.+)\/ authorize_build/ ) . to_return (
239
+ body : MultiJson . dump ( error : 'Plan not found' ) , status : 404
240
+ )
241
+ end
242
+
243
+ it 'restarts the job' do
244
+ post ( "/v3/job/#{ job . id } /restart" , params , headers )
245
+ expect ( last_response . status ) . to eq ( 202 )
246
+ end
247
+ end
248
+ end
249
+
222
250
describe "passed state" do
223
251
include_examples 'clears debug_options'
224
252
You can’t perform that action at this time.
0 commit comments