debian-mirror-gitlab/spec/lib/gitlab/repository_size_error_message_spec.rb

72 lines
2.4 KiB
Ruby
Raw Normal View History

2020-04-22 19:07:51 +05:30
# frozen_string_literal: true
require 'spec_helper'
2020-07-28 23:09:34 +05:30
RSpec.describe Gitlab::RepositorySizeErrorMessage do
2021-01-03 14:25:43 +05:30
let_it_be(:namespace) { build(:namespace) }
2020-04-22 19:07:51 +05:30
let(:checker) do
Gitlab::RepositorySizeChecker.new(
current_size_proc: -> { 15.megabytes },
2021-01-03 14:25:43 +05:30
namespace: namespace,
2020-04-22 19:07:51 +05:30
limit: 10.megabytes
)
end
let(:message) { checker.error_message }
let(:base_message) { 'because this repository has exceeded its size limit of 10 MB by 5 MB' }
2021-01-03 14:25:43 +05:30
before do
allow(namespace).to receive(:total_repository_size_excess).and_return(0)
end
2020-04-22 19:07:51 +05:30
describe 'error messages' do
describe '#commit_error' do
it 'returns the correct message' do
expect(message.commit_error).to eq("Your changes could not be committed, #{base_message}")
end
end
describe '#merge_error' do
it 'returns the correct message' do
expect(message.merge_error).to eq("This merge request cannot be merged, #{base_message}")
end
end
describe '#push_error' do
context 'with exceeded_limit value' do
let(:rejection_message) do
'because this repository has exceeded its size limit of 10 MB by 15 MB'
end
it 'returns the correct message' do
expect(message.push_error(10.megabytes))
.to eq("Your push has been rejected, #{rejection_message}. #{message.more_info_message}")
end
end
context 'without exceeded_limit value' do
it 'returns the correct message' do
expect(message.push_error)
.to eq("Your push has been rejected, #{base_message}. #{message.more_info_message}")
end
end
end
describe '#new_changes_error' do
2021-01-29 00:20:46 +05:30
context 'when additional repo storage is available' do
it 'returns the correct message' do
allow(checker).to receive(:additional_repo_storage_available?).and_return(true)
expect(message.new_changes_error).to eq('Your push to this repository has been rejected because it would exceed storage limits. Please contact your GitLab administrator for more information.')
end
end
context 'when no additional repo storage is available' do
it 'returns the correct message' do
expect(message.new_changes_error).to eq("Your push to this repository would cause it to exceed the size limit of 10 MB so it has been rejected. #{message.more_info_message}")
end
2020-04-22 19:07:51 +05:30
end
end
end
end