Merge branch 'gitaly-clean-up-tests' into 'master'
Clean up Gitaly tests See merge request !12526
This commit is contained in:
commit
71a6c83a55
|
@ -34,7 +34,7 @@ module Gitlab
|
||||||
commit_id: commit_id,
|
commit_id: commit_id,
|
||||||
prefix: ref_prefix
|
prefix: ref_prefix
|
||||||
)
|
)
|
||||||
GitalyClient.call(@storage, :ref, :find_ref_name, request).name
|
encode!(GitalyClient.call(@storage, :ref, :find_ref_name, request).name.dup)
|
||||||
end
|
end
|
||||||
|
|
||||||
def count_tag_names
|
def count_tag_names
|
||||||
|
|
|
@ -20,6 +20,7 @@ describe Gitlab::Git::Blame, seed_helper: true do
|
||||||
expect(data.size).to eq(95)
|
expect(data.size).to eq(95)
|
||||||
expect(data.first[:commit]).to be_kind_of(Gitlab::Git::Commit)
|
expect(data.first[:commit]).to be_kind_of(Gitlab::Git::Commit)
|
||||||
expect(data.first[:line]).to eq("# Contribute to GitLab")
|
expect(data.first[:line]).to eq("# Contribute to GitLab")
|
||||||
|
expect(data.first[:line]).to be_utf8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -40,6 +41,7 @@ describe Gitlab::Git::Blame, seed_helper: true do
|
||||||
expect(data.size).to eq(1)
|
expect(data.size).to eq(1)
|
||||||
expect(data.first[:commit]).to be_kind_of(Gitlab::Git::Commit)
|
expect(data.first[:commit]).to be_kind_of(Gitlab::Git::Commit)
|
||||||
expect(data.first[:line]).to eq("Ä ü")
|
expect(data.first[:line]).to eq("Ä ü")
|
||||||
|
expect(data.first[:line]).to be_utf8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -61,6 +63,7 @@ describe Gitlab::Git::Blame, seed_helper: true do
|
||||||
expect(data.size).to eq(1)
|
expect(data.size).to eq(1)
|
||||||
expect(data.first[:commit]).to be_kind_of(Gitlab::Git::Commit)
|
expect(data.first[:commit]).to be_kind_of(Gitlab::Git::Commit)
|
||||||
expect(data.first[:line]).to eq(" ")
|
expect(data.first[:line]).to eq(" ")
|
||||||
|
expect(data.first[:line]).to be_utf8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -48,7 +48,7 @@ describe Gitlab::Git::Branch, seed_helper: true do
|
||||||
expect(Gitlab::Git::Commit).to receive(:decorate)
|
expect(Gitlab::Git::Commit).to receive(:decorate)
|
||||||
.with(hash_including(attributes)).and_call_original
|
.with(hash_including(attributes)).and_call_original
|
||||||
|
|
||||||
expect(branch.dereferenced_target.message.encoding).to be(Encoding::UTF_8)
|
expect(branch.dereferenced_target.message).to be_utf8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -180,7 +180,7 @@ EOT
|
||||||
let(:raw_patch) { @raw_diff_hash[:diff].encode(Encoding::ASCII_8BIT) }
|
let(:raw_patch) { @raw_diff_hash[:diff].encode(Encoding::ASCII_8BIT) }
|
||||||
|
|
||||||
it 'encodes diff patch to UTF-8' do
|
it 'encodes diff patch to UTF-8' do
|
||||||
expect(diff.diff.encoding).to eq(Encoding::UTF_8)
|
expect(diff.diff).to be_utf8
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,34 +27,24 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns UTF-8' do
|
it 'returns UTF-8' do
|
||||||
expect(repository.root_ref.encoding).to eq(Encoding.find('UTF-8'))
|
expect(repository.root_ref).to be_utf8
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with gitaly enabled' do
|
it 'gets the branch name from GitalyClient' do
|
||||||
before do
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:default_branch_name)
|
||||||
stub_gitaly
|
repository.root_ref
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
it 'wraps GRPC not found' do
|
||||||
Gitlab::GitalyClient.clear_stubs!
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:default_branch_name)
|
||||||
end
|
.and_raise(GRPC::NotFound)
|
||||||
|
expect { repository.root_ref }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
||||||
|
end
|
||||||
|
|
||||||
it 'gets the branch name from GitalyClient' do
|
it 'wraps GRPC exceptions' do
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:default_branch_name)
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:default_branch_name)
|
||||||
repository.root_ref
|
.and_raise(GRPC::Unknown)
|
||||||
end
|
expect { repository.root_ref }.to raise_error(Gitlab::Git::CommandError)
|
||||||
|
|
||||||
it 'wraps GRPC not found' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:default_branch_name)
|
|
||||||
.and_raise(GRPC::NotFound)
|
|
||||||
expect { repository.root_ref }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'wraps GRPC exceptions' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:default_branch_name)
|
|
||||||
.and_raise(GRPC::Unknown)
|
|
||||||
expect { repository.root_ref }.to raise_error(Gitlab::Git::CommandError)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -129,37 +119,27 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns UTF-8' do
|
it 'returns UTF-8' do
|
||||||
expect(subject.first.encoding).to eq(Encoding.find('UTF-8'))
|
expect(subject.first).to be_utf8
|
||||||
end
|
end
|
||||||
|
|
||||||
it { is_expected.to include("master") }
|
it { is_expected.to include("master") }
|
||||||
it { is_expected.not_to include("branch-from-space") }
|
it { is_expected.not_to include("branch-from-space") }
|
||||||
|
|
||||||
context 'with gitaly enabled' do
|
it 'gets the branch names from GitalyClient' do
|
||||||
before do
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:branch_names)
|
||||||
stub_gitaly
|
subject
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
it 'wraps GRPC not found' do
|
||||||
Gitlab::GitalyClient.clear_stubs!
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:branch_names)
|
||||||
end
|
.and_raise(GRPC::NotFound)
|
||||||
|
expect { subject }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
||||||
|
end
|
||||||
|
|
||||||
it 'gets the branch names from GitalyClient' do
|
it 'wraps GRPC other exceptions' do
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:branch_names)
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:branch_names)
|
||||||
subject
|
.and_raise(GRPC::Unknown)
|
||||||
end
|
expect { subject }.to raise_error(Gitlab::Git::CommandError)
|
||||||
|
|
||||||
it 'wraps GRPC not found' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:branch_names)
|
|
||||||
.and_raise(GRPC::NotFound)
|
|
||||||
expect { subject }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'wraps GRPC other exceptions' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:branch_names)
|
|
||||||
.and_raise(GRPC::Unknown)
|
|
||||||
expect { subject }.to raise_error(Gitlab::Git::CommandError)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -173,7 +153,7 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'returns UTF-8' do
|
it 'returns UTF-8' do
|
||||||
expect(subject.first.encoding).to eq(Encoding.find('UTF-8'))
|
expect(subject.first).to be_utf8
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#last' do
|
describe '#last' do
|
||||||
|
@ -183,31 +163,21 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
||||||
it { is_expected.to include("v1.0.0") }
|
it { is_expected.to include("v1.0.0") }
|
||||||
it { is_expected.not_to include("v5.0.0") }
|
it { is_expected.not_to include("v5.0.0") }
|
||||||
|
|
||||||
context 'with gitaly enabled' do
|
it 'gets the tag names from GitalyClient' do
|
||||||
before do
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:tag_names)
|
||||||
stub_gitaly
|
subject
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
it 'wraps GRPC not found' do
|
||||||
Gitlab::GitalyClient.clear_stubs!
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:tag_names)
|
||||||
end
|
.and_raise(GRPC::NotFound)
|
||||||
|
expect { subject }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
||||||
|
end
|
||||||
|
|
||||||
it 'gets the tag names from GitalyClient' do
|
it 'wraps GRPC exceptions' do
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:tag_names)
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:tag_names)
|
||||||
subject
|
.and_raise(GRPC::Unknown)
|
||||||
end
|
expect { subject }.to raise_error(Gitlab::Git::CommandError)
|
||||||
|
|
||||||
it 'wraps GRPC not found' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:tag_names)
|
|
||||||
.and_raise(GRPC::NotFound)
|
|
||||||
expect { subject }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'wraps GRPC exceptions' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:tag_names)
|
|
||||||
.and_raise(GRPC::Unknown)
|
|
||||||
expect { subject }.to raise_error(Gitlab::Git::CommandError)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1281,42 +1251,31 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
||||||
expect(@repo.local_branches.any? { |branch| branch.name == 'local_branch' }).to eq(true)
|
expect(@repo.local_branches.any? { |branch| branch.name == 'local_branch' }).to eq(true)
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with gitaly enabled' do
|
it 'returns a Branch with UTF-8 fields' do
|
||||||
before do
|
branches = @repo.local_branches.to_a
|
||||||
stub_gitaly
|
expect(branches.size).to be > 0
|
||||||
|
branches.each do |branch|
|
||||||
|
expect(branch.name).to be_utf8
|
||||||
|
expect(branch.target).to be_utf8 unless branch.target.nil?
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
after do
|
it 'gets the branches from GitalyClient' do
|
||||||
Gitlab::GitalyClient.clear_stubs!
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:local_branches)
|
||||||
end
|
.and_return([])
|
||||||
|
@repo.local_branches
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns a Branch with UTF-8 fields' do
|
it 'wraps GRPC not found' do
|
||||||
branches = @repo.local_branches.to_a
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:local_branches)
|
||||||
expect(branches.size).to be > 0
|
.and_raise(GRPC::NotFound)
|
||||||
utf_8 = Encoding.find('utf-8')
|
expect { @repo.local_branches }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
||||||
branches.each do |branch|
|
end
|
||||||
expect(branch.name.encoding).to eq(utf_8)
|
|
||||||
expect(branch.target.encoding).to eq(utf_8) unless branch.target.nil?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'gets the branches from GitalyClient' do
|
it 'wraps GRPC exceptions' do
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:local_branches)
|
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:local_branches)
|
||||||
.and_return([])
|
.and_raise(GRPC::Unknown)
|
||||||
@repo.local_branches
|
expect { @repo.local_branches }.to raise_error(Gitlab::Git::CommandError)
|
||||||
end
|
|
||||||
|
|
||||||
it 'wraps GRPC not found' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:local_branches)
|
|
||||||
.and_raise(GRPC::NotFound)
|
|
||||||
expect { @repo.local_branches }.to raise_error(Gitlab::Git::Repository::NoRepository)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'wraps GRPC exceptions' do
|
|
||||||
expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:local_branches)
|
|
||||||
.and_raise(GRPC::Unknown)
|
|
||||||
expect { @repo.local_branches }.to raise_error(Gitlab::Git::CommandError)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1395,11 +1354,4 @@ describe Gitlab::Git::Repository, seed_helper: true do
|
||||||
sha = Rugged::Commit.create(repo, options)
|
sha = Rugged::Commit.create(repo, options)
|
||||||
repo.lookup(sha)
|
repo.lookup(sha)
|
||||||
end
|
end
|
||||||
|
|
||||||
def stub_gitaly
|
|
||||||
allow(Gitlab::GitalyClient).to receive(:feature_enabled?).and_return(true)
|
|
||||||
|
|
||||||
stub = double(:stub)
|
|
||||||
allow(Gitaly::Ref::Stub).to receive(:new).and_return(stub)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,17 +6,6 @@ describe Gitlab::GitalyClient::Ref do
|
||||||
let(:relative_path) { project.path_with_namespace + '.git' }
|
let(:relative_path) { project.path_with_namespace + '.git' }
|
||||||
let(:client) { described_class.new(project.repository) }
|
let(:client) { described_class.new(project.repository) }
|
||||||
|
|
||||||
before do
|
|
||||||
allow(Gitlab.config.gitaly).to receive(:enabled).and_return(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
after do
|
|
||||||
# When we say `expect_any_instance_of(Gitaly::Ref::Stub)` a double is created,
|
|
||||||
# and because GitalyClient shares stubs these will get passed from example to
|
|
||||||
# example, which will cause an error, so we clean the stubs after each example.
|
|
||||||
Gitlab::GitalyClient.clear_stubs!
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#branch_names' do
|
describe '#branch_names' do
|
||||||
it 'sends a find_all_branch_names message' do
|
it 'sends a find_all_branch_names message' do
|
||||||
expect_any_instance_of(Gitaly::Ref::Stub)
|
expect_any_instance_of(Gitaly::Ref::Stub)
|
||||||
|
@ -82,4 +71,13 @@ describe Gitlab::GitalyClient::Ref do
|
||||||
expect { client.local_branches(sort_by: 'invalid_sort') }.to raise_error(ArgumentError)
|
expect { client.local_branches(sort_by: 'invalid_sort') }.to raise_error(ArgumentError)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#find_ref_name', seed_helper: true do
|
||||||
|
let(:repository) { Gitlab::Git::Repository.new('default', TEST_REPO_PATH) }
|
||||||
|
let(:client) { described_class.new(repository) }
|
||||||
|
subject { client.find_ref_name(SeedRepo::Commit::ID, 'refs/heads/master') }
|
||||||
|
|
||||||
|
it { should be_utf8 }
|
||||||
|
it { should eq('refs/heads/master') }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -120,28 +120,17 @@ describe Environment, models: true do
|
||||||
let(:head_commit) { project.commit }
|
let(:head_commit) { project.commit }
|
||||||
let(:commit) { project.commit.parent }
|
let(:commit) { project.commit.parent }
|
||||||
|
|
||||||
context 'Gitaly find_ref_name feature disabled' do
|
it 'returns deployment id for the environment' do
|
||||||
it 'returns deployment id for the environment' do
|
expect(environment.first_deployment_for(commit)).to eq deployment1
|
||||||
expect(environment.first_deployment_for(commit)).to eq deployment1
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'return nil when no deployment is found' do
|
|
||||||
expect(environment.first_deployment_for(head_commit)).to eq nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Uncomment when feature is reenabled
|
it 'return nil when no deployment is found' do
|
||||||
# context 'Gitaly find_ref_name feature enabled' do
|
expect(environment.first_deployment_for(head_commit)).to eq nil
|
||||||
# before do
|
end
|
||||||
# allow(Gitlab::GitalyClient).to receive(:feature_enabled?).with(:find_ref_name).and_return(true)
|
|
||||||
# end
|
it 'returns a UTF-8 ref' do
|
||||||
#
|
expect(environment.first_deployment_for(commit).ref).to be_utf8
|
||||||
# it 'calls GitalyClient' do
|
end
|
||||||
# expect_any_instance_of(Gitlab::GitalyClient::Ref).to receive(:find_ref_name)
|
|
||||||
#
|
|
||||||
# environment.first_deployment_for(commit)
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#environment_type' do
|
describe '#environment_type' do
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
RSpec::Matchers.define :be_utf8 do |_|
|
||||||
|
match do |actual|
|
||||||
|
actual.is_a?(String) && actual.encoding == Encoding.find('UTF-8')
|
||||||
|
end
|
||||||
|
|
||||||
|
description do
|
||||||
|
"be a String with encoding UTF-8"
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue