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
|
# frozen_string_literal: true
RSpec.shared_examples 'runner migrations backoff' do
context 'when executing locking database migrations' do
it 'returns 429 error', :aggregate_failures do
expect(Gitlab::Database::Migrations::RunnerBackoff::Communicator)
.to receive(:backoff_runner?)
.and_return(true)
request
expect(response).to have_gitlab_http_status(:too_many_requests)
expect(response.headers['Retry-After']).to eq(60)
expect(json_response).to match({ "message" => "Executing database migrations. Please retry later." })
end
context 'with runner_migrations_backoff disabled' do
before do
stub_feature_flags(runner_migrations_backoff: false)
end
it 'does not return 429' do
expect(Gitlab::ExclusiveLease).not_to receive(:new)
.with(Gitlab::Database::Migrations::RunnerBackoff::Communicator::KEY,
timeout: Gitlab::Database::Migrations::RunnerBackoff::Communicator::EXPIRY)
request
expect(response).not_to have_gitlab_http_status(:too_many_requests)
end
end
end
end
|