Merge pull request #175 from travis-ci/remove-triggering-builds-in-v2
Remove triggering builds in V2
This commit is contained in:
commit
a1b421a7fa
|
@ -19,7 +19,7 @@ class Travis::Api::App
|
||||||
|
|
||||||
post '/', scope: :private do
|
post '/', scope: :private do
|
||||||
if params[:request] && params[:request][:repository]
|
if params[:request] && params[:request][:repository]
|
||||||
respond_with service(:schedule_request, params[:request])
|
status 404
|
||||||
else
|
else
|
||||||
# DEPRECATED: this will be removed by 1st of December
|
# DEPRECATED: this will be removed by 1st of December
|
||||||
Metriks.meter("api.request.restart").mark
|
Metriks.meter("api.request.restart").mark
|
||||||
|
|
|
@ -26,31 +26,4 @@ describe 'Requests' do
|
||||||
response.should deliver_json_for(request, version: 'v2', type: 'request')
|
response.should deliver_json_for(request, version: 'v2', type: 'request')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'POST /requests' do
|
|
||||||
let(:payload) { { request: { repository: { owner_name: repo.owner_name, name: repo.name } } } }
|
|
||||||
|
|
||||||
before do
|
|
||||||
Travis::Features.stubs(:owner_active?).returns(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'schedules a request' do
|
|
||||||
response = post '/requests', payload, headers
|
|
||||||
expect(response.status).to eq 200
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'requires activation' do
|
|
||||||
Travis::Features.stubs(:owner_active?).returns(false)
|
|
||||||
response = post '/requests', payload, headers
|
|
||||||
json = JSON.parse(response.body)
|
|
||||||
expect(json['result']).to eq 'not_active'
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'throttles requests' do
|
|
||||||
Travis::Api::App::Services::ScheduleRequest::Throttle.any_instance.stubs(:throttled?).returns(true)
|
|
||||||
response = post '/requests', payload, headers
|
|
||||||
json = JSON.parse(response.body)
|
|
||||||
expect(json['result']).to eq 'throttled'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
require 'spec_helper'
|
|
||||||
|
|
||||||
describe Travis::Api::App::Endpoint::Requests do
|
|
||||||
include Travis::Testing::Stubs
|
|
||||||
|
|
||||||
let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: -1) }
|
|
||||||
let(:data) { { request: { repository: { owner_name: 'owner', name: 'name' }, branch: 'branch', config: { env: ['FOO=foo'] } } } }
|
|
||||||
let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json, */*; q=0.01', 'HTTP_AUTHORIZATION' => %(token "#{token.token}") } }
|
|
||||||
let(:response) { post('/requests', data, headers) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
User.stubs(:find_by_github_id).returns(user)
|
|
||||||
User.stubs(:find).returns(user)
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'POST to /' do
|
|
||||||
it 'needs to be authenticated' do
|
|
||||||
Travis::Api::App::AccessToken.stubs(:find_by_token).returns(nil)
|
|
||||||
expect(response.status).to eq 403
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'if the repository does not exist' do
|
|
||||||
it 'returns 404' do
|
|
||||||
expect(response.status).to eq 404
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'includes a notice' do
|
|
||||||
expect(response.body).to eq '{"result":"not_found","flash":[{"error":"Repository owner/name not found."}]}'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'if successful' do
|
|
||||||
before do
|
|
||||||
Repository.stubs(:by_slug).returns([repo])
|
|
||||||
Travis::Sidekiq::BuildRequest.stubs(:perform_async)
|
|
||||||
Travis::Features.stubs(:owner_active?).returns(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'returns 200' do
|
|
||||||
expect(response.status).to eq 200
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'includes a notice' do
|
|
||||||
expect(response.body).to eq '{"result":"success","flash":[{"notice":"Build request scheduled."}]}'
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'schedules the build request' do
|
|
||||||
payload = data[:request].merge(user: { id: user.id })
|
|
||||||
payload[:repository][:id] = repo.github_id
|
|
||||||
Travis::Sidekiq::BuildRequest.expects(:perform_async).with(type: 'api', payload: MultiJson.encode(payload), credentials: {})
|
|
||||||
response
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user