Remove old code references from v3 endpoints

This commit is contained in:
Ana Rosas 2016-06-30 13:07:31 -07:00 committed by Aakriti Gupta
parent 75ef3a6367
commit 510fb8b146
6 changed files with 39 additions and 498 deletions

View File

@ -12,26 +12,19 @@ module Travis::API::V3
def cancel(user) def cancel(user)
raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state raise BuildNotCancelable if %w(passed failed canceled errored).include? find.state
payload = { id: id, user_id: user.id, source: 'api' } payload = { id: id, user_id: user.id, source: 'api' }
if Travis::Features.enabled_for_all?(:enqueue_to_hub) || Travis::Features.owner_active?(:enqueue_to_hub, find.repository.owner)
service = Travis::Enqueue::Services::CancelModel.new(user, { build_id: id }) service = Travis::Enqueue::Services::CancelModel.new(user, { build_id: id })
service.push("build:cancel", payload) service.push("build:cancel", payload)
else
perform_async(:build_cancellation, payload)
end
payload payload
end end
def restart(user) def restart(user)
raise BuildAlreadyRunning if %w(received queued started).include? find.state raise BuildAlreadyRunning if %w(received queued started).include? find.state
if Travis::Features.enabled_for_all?(:enqueue_to_hub) || Travis::Features.owner_active?(:enqueue_to_hub, find.repository.owner)
service = Travis::Enqueue::Services::RestartModel.new(user, { build_id: id }) service = Travis::Enqueue::Services::RestartModel.new(user, { build_id: id })
payload = { id: id, user_id: user.id } payload = { id: id, user_id: user.id }
service.push("build:restart", payload) service.push("build:restart", payload)
else
payload = { id: id, user_id: user.id, source: 'api' }
perform_async(:build_restart, payload)
end
payload payload
end end
end end

View File

@ -12,28 +12,19 @@ module Travis::API::V3
def cancel(user) def cancel(user)
raise JobNotCancelable if %w(passed failed canceled errored).include? find.state raise JobNotCancelable if %w(passed failed canceled errored).include? find.state
payload = { id: id, user_id: user.id, source: 'api' } payload = { id: id, user_id: user.id, source: 'api' }
#look for repo.owner instead and look if the user belongs to the repo, instead of using user for the feature flag
if Travis::Features.enabled_for_all?(:enqueue_to_hub) || Travis::Features.owner_active?(:enqueue_to_hub, find.repository.owner)
service = Travis::Enqueue::Services::CancelModel.new(user, { job_id: id }) service = Travis::Enqueue::Services::CancelModel.new(user, { job_id: id })
service.push("job:cancel", payload) service.push("job:cancel", payload)
else
perform_async(:job_cancellation, payload)
end
payload payload
end end
def restart(user) def restart(user)
raise JobAlreadyRunning if %w(received queued started).include? find.state raise JobAlreadyRunning if %w(received queued started).include? find.state
if Travis::Features.enabled_for_all?(:enqueue_to_hub) || Travis::Features.owner_active?(:enqueue_to_hub, find.repository.owner)
service = Travis::Enqueue::Services::RestartModel.new(user, { job_id: id }) service = Travis::Enqueue::Services::RestartModel.new(user, { job_id: id })
payload = { id: id, user_id: user.id } payload = { id: id, user_id: user.id }
service.push("job:restart", payload) service.push("job:restart", payload)
else
payload = { id: id, user_id: user.id, source: 'api' }
perform_async(:job_restart, payload)
end
payload payload
end end
end end

View File

@ -1,8 +1,7 @@
describe Travis::API::V3::Services::Build::Cancel, set_app: true do describe Travis::API::V3::Services::Build::Cancel, set_app: true do
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first } let(:build) { repo.builds.first }
let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } let(:payload) { { 'id'=> "#{build.id}", 'user_id' => 1, 'source' => 'api' } }
let(:sidekiq_params) { Sidekiq::Client.last['args'].last.deep_symbolize_keys }
before do before do
Travis::Features.stubs(:owner_active?).returns(true) Travis::Features.stubs(:owner_active?).returns(true)
@ -131,101 +130,6 @@ describe Travis::API::V3::Services::Build::Cancel, set_app: true do
end end
end end
describe "existing repository, push access, cancelable" do
let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
describe "started state" do
before { build.update_attribute(:state, "started") }
before { post("/v3/build/#{build.id}/cancel", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"build",
"@href",
"@representation",
"minimal",
"cancel",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_cancellations' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildCancellation' }
end
describe "queued state" do
before { build.update_attribute(:state, "queued") }
before { post("/v3/build/#{build.id}/cancel", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"build",
"@href",
"@representation",
"minimal",
"cancel",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_cancellations' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildCancellation' }
end
describe "received state" do
before { build.update_attribute(:state, "received") }
before { post("/v3/build/#{build.id}/cancel", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"build",
"@href",
"@representation",
"minimal",
"cancel",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_cancellations' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildCancellation' }
end
describe "setting id has no effect" do
let(:params) {{ id: 42 }}
before { post("/v3/build/#{build.id}/cancel", params, headers) }
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
end
end
describe "existing repository, push & pull access, cancelable, enqueues message for Hub" do describe "existing repository, push & pull access, cancelable, enqueues message for Hub" do
let(:params) {{}} let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
@ -251,7 +155,7 @@ describe Travis::API::V3::Services::Build::Cancel, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -277,7 +181,7 @@ describe Travis::API::V3::Services::Build::Cancel, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -303,7 +207,7 @@ describe Travis::API::V3::Services::Build::Cancel, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -316,7 +220,7 @@ describe Travis::API::V3::Services::Build::Cancel, set_app: true do
describe "setting id has no effect" do describe "setting id has no effect" do
let(:params) {{ id: 42 }} let(:params) {{ id: 42 }}
before { post("/v3/build/#{build.id}/cancel", params, headers) } before { post("/v3/build/#{build.id}/cancel", params, headers) }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -353,7 +257,7 @@ describe Travis::API::V3::Services::Build::Cancel, set_app: true do
# describe 'setting user' do # describe 'setting user' do
# let(:params) {{ user: { id: repo.owner.id } }} # let(:params) {{ user: { id: repo.owner.id } }}
# example { expect(last_response.status).to be == 202 } # example { expect(last_response.status).to be == 202 }
# example { expect(sidekiq_payload).to be == { # example { expect(payload).to be == {
# # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' }, # # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' },
# # user: { id: repo.owner.id }, # # user: { id: repo.owner.id },
# # message: nil, # # message: nil,

View File

@ -1,8 +1,7 @@
describe Travis::API::V3::Services::Build::Restart, set_app: true do describe Travis::API::V3::Services::Build::Restart, set_app: true do
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first } let(:build) { repo.builds.first }
let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } let(:payload) { { 'id'=> "#{build.id}", 'user_id' => 1 } }
let(:sidekiq_params) { Sidekiq::Client.last['args'].last.deep_symbolize_keys }
before do before do
Travis::Features.stubs(:owner_active?).returns(true) Travis::Features.stubs(:owner_active?).returns(true)
@ -119,131 +118,6 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
end end
end end
describe "existing repository, push access, build not already running" do
let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
describe "errored state" do
before { build.update_attribute(:state, "errored") }
before { post("/v3/build/#{build.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"build",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildRestart' }
end
describe "passed state" do
before { build.update_attribute(:state, "passed") }
before { post("/v3/build/#{build.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"build",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildRestart' }
end
describe "failed state" do
before { build.update_attribute(:state, "failed") }
before { post("/v3/build/#{build.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"build",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildRestart' }
end
describe "canceled state" do
before { build.update_attribute(:state, "canceled") }
before { post("/v3/build/#{build.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"build",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'build_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::BuildRestart' }
end
describe "setting id has no effect" do
before { post("/v3/build/#{build.id}/restart", params, headers) }
let(:params) {{ id: 42 }}
example { expect(sidekiq_payload).to be == {
"id" => "#{build.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
end
end
describe "existing repository, push access, build not already running, enqueues message for Hub" do describe "existing repository, push access, build not already running, enqueues message for Hub" do
let(:params) {{}} let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
@ -272,7 +146,7 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -298,7 +172,7 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -324,7 +198,7 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -350,7 +224,7 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -364,7 +238,7 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
before { post("/v3/build/#{build.id}/restart", params, headers) } before { post("/v3/build/#{build.id}/restart", params, headers) }
let(:params) {{ id: 42 }} let(:params) {{ id: 42 }}
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{build.id}", "id" => "#{build.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -397,7 +271,7 @@ describe Travis::API::V3::Services::Build::Restart, set_app: true do
# describe 'setting user' do # describe 'setting user' do
# let(:params) {{ user: { id: repo.owner.id } }} # let(:params) {{ user: { id: repo.owner.id } }}
# example { expect(last_response.status).to be == 202 } # example { expect(last_response.status).to be == 202 }
# example { expect(sidekiq_payload).to be == { # example { expect(payload).to be == {
# # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' }, # # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' },
# # user: { id: repo.owner.id }, # # user: { id: repo.owner.id },
# # message: nil, # # message: nil,

View File

@ -2,8 +2,7 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first } let(:build) { repo.builds.first }
let(:job) { build.jobs.first} let(:job) { build.jobs.first}
let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } let(:payload) { { 'id'=> "#{job.id}", 'user_id' => 1, 'source' => 'api' } }
let(:sidekiq_params) { Sidekiq::Client.last['args'].last.deep_symbolize_keys }
before do before do
Travis::Features.stubs(:owner_active?).returns(true) Travis::Features.stubs(:owner_active?).returns(true)
@ -77,103 +76,6 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
}} }}
end end
describe "existing repository, push access, job cancelable" do
let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
describe "started state" do
before { job.update_attribute(:state, "started") }
before { post("/v3/job/#{job.id}/cancel", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"cancel",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_cancellations' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobCancellation' }
end
describe "queued state" do
before { job.update_attribute(:state, "queued") }
before { post("/v3/job/#{job.id}/cancel", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"cancel",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_cancellations' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobCancellation' }
end
describe "received state" do
before { job.update_attribute(:state, "received") }
before { post("/v3/job/#{job.id}/cancel", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"cancel",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_cancellations' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobCancellation' }
end
describe "setting id has no effect" do
before { post("/v3/job/#{job.id}/cancel", params, headers) }
let(:params) {{ id: 42 }}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
end
end
describe "existing repository, push access, job cancelable, enqueues message for Hub" do describe "existing repository, push access, job cancelable, enqueues message for Hub" do
let(:params) {{}} let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
@ -200,7 +102,7 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -226,7 +128,7 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -253,7 +155,7 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -266,7 +168,7 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
describe "setting id has no effect" do describe "setting id has no effect" do
before { post("/v3/job/#{job.id}/cancel", params, headers) } before { post("/v3/job/#{job.id}/cancel", params, headers) }
let(:params) {{ id: 42 }} let(:params) {{ id: 42 }}
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id, "user_id"=> repo.owner_id,
"source" => "api"} "source" => "api"}
@ -355,7 +257,7 @@ describe Travis::API::V3::Services::Job::Cancel, set_app: true do
# describe 'setting user' do # describe 'setting user' do
# let(:params) {{ user: { id: repo.owner.id } }} # let(:params) {{ user: { id: repo.owner.id } }}
# example { expect(last_response.status).to be == 202 } # example { expect(last_response.status).to be == 202 }
# example { expect(sidekiq_payload).to be == { # example { expect(payload).to be == {
# # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' }, # # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' },
# # user: { id: repo.owner.id }, # # user: { id: repo.owner.id },
# # message: nil, # # message: nil,

View File

@ -2,8 +2,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first } let(:repo) { Travis::API::V3::Models::Repository.where(owner_name: 'svenfuchs', name: 'minimal').first }
let(:build) { repo.builds.first } let(:build) { repo.builds.first }
let(:job) { build.jobs.first } let(:job) { build.jobs.first }
let(:sidekiq_payload) { JSON.load(Sidekiq::Client.last['args'].last.to_json) } let(:payload) { { 'id'=> "#{job.id}", 'user_id' => 1 } }
let(:sidekiq_params) { Sidekiq::Client.last['args'].last.deep_symbolize_keys }
before do before do
Travis::Features.stubs(:owner_active?).returns(true) Travis::Features.stubs(:owner_active?).returns(true)
@ -77,128 +76,6 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
}} }}
end end
describe "existing repository, push access, job not already running" do
let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
let(:headers) {{ 'HTTP_AUTHORIZATION' => "token #{token}" }}
before { Travis::API::V3::Models::Permission.create(repository: repo, user: repo.owner, push: true) }
describe "canceled state" do
before { job.update_attribute(:state, "canceled") }
before { post("/v3/job/#{job.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobRestart' }
end
describe "errored state" do
before { job.update_attribute(:state, "errored") }
before { post("/v3/job/#{job.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobRestart' }
end
describe "failed state" do
before { job.update_attribute(:state, "failed") }
before { post("/v3/job/#{job.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobRestart' }
end
describe "passed state" do
before { job.update_attribute(:state, "passed") }
before { post("/v3/job/#{job.id}/restart", params, headers) }
example { expect(last_response.status).to be == 202 }
example { expect(JSON.load(body).to_s).to include(
"@type",
"pending",
"job",
"@href",
"@representation",
"minimal",
"restart",
"id",
"state_change")
}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
example { expect(Sidekiq::Client.last['queue']).to be == 'job_restarts' }
example { expect(Sidekiq::Client.last['class']).to be == 'Travis::Sidekiq::JobRestart' }
end
describe "setting id has no effect" do
before { post("/v3/job/#{job.id}/restart", params, headers) }
let(:params) {{ id: 42 }}
example { expect(sidekiq_payload).to be == {
"id" => "#{job.id}",
"user_id"=> repo.owner_id,
"source" => "api"}
}
end
end
describe "existing repository, push access, job not already running, enqueues message for Hub" do describe "existing repository, push access, job not already running, enqueues message for Hub" do
let(:params) {{}} let(:params) {{}}
let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) } let(:token) { Travis::Api::App::AccessToken.create(user: repo.owner, app_id: 1) }
@ -225,7 +102,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -250,7 +127,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -275,7 +152,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -300,7 +177,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
"state_change") "state_change")
} }
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -316,7 +193,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
end end
let(:params) {{ id: 42 }} let(:params) {{ id: 42 }}
example { expect(sidekiq_payload).to be == { example { expect(payload).to be == {
"id" => "#{job.id}", "id" => "#{job.id}",
"user_id"=> repo.owner_id} "user_id"=> repo.owner_id}
} }
@ -392,7 +269,7 @@ describe Travis::API::V3::Services::Job::Restart, set_app: true do
# describe 'setting user' do # describe 'setting user' do
# let(:params) {{ user: { id: repo.owner.id } }} # let(:params) {{ user: { id: repo.owner.id } }}
# example { expect(last_response.status).to be == 202 } # example { expect(last_response.status).to be == 202 }
# example { expect(sidekiq_payload).to be == { # example { expect(payload).to be == {
# # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' }, # # repository: { id: repo.id, owner_name: 'svenfuchs', name: 'minimal' },
# # user: { id: repo.owner.id }, # # user: { id: repo.owner.id },
# # message: nil, # # message: nil,