Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/checks/project_moved_spec.rb')
-rw-r--r--spec/lib/gitlab/checks/project_moved_spec.rb124
1 files changed, 0 insertions, 124 deletions
diff --git a/spec/lib/gitlab/checks/project_moved_spec.rb b/spec/lib/gitlab/checks/project_moved_spec.rb
deleted file mode 100644
index 469aea8d093..00000000000
--- a/spec/lib/gitlab/checks/project_moved_spec.rb
+++ /dev/null
@@ -1,124 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::Checks::ProjectMoved, :clean_gitlab_redis_shared_state do
- let_it_be(:user) { create(:user) }
- let_it_be(:project) { create(:project, :repository, :wiki_repo, namespace: user.namespace) }
-
- let(:repository) { project.repository }
- let(:protocol) { 'http' }
- let(:git_user) { user }
- let(:redirect_path) { 'foo/bar' }
-
- subject { described_class.new(repository, git_user, protocol, redirect_path) }
-
- describe '.fetch_message' do
- context 'with a redirect message queue' do
- before do
- subject.add_message
- end
-
- it 'returns the redirect message' do
- expect(described_class.fetch_message(user.id, project.id)).to eq(subject.message)
- end
-
- it 'deletes the redirect message from redis' do
- expect(Gitlab::Redis::SharedState.with { |redis| redis.get("redirect_namespace:#{user.id}:#{project.id}") }).not_to be_nil
-
- described_class.fetch_message(user.id, project.id)
-
- expect(Gitlab::Redis::SharedState.with { |redis| redis.get("redirect_namespace:#{user.id}:#{project.id}") }).to be_nil
- end
- end
-
- context 'with no redirect message queue' do
- it 'returns nil' do
- expect(described_class.fetch_message(1, 2)).to be_nil
- end
- end
- end
-
- describe '#add_message' do
- it 'queues a redirect message' do
- expect(subject.add_message).to eq("OK")
- end
-
- context 'when user is nil' do
- let(:git_user) { nil }
-
- it 'handles anonymous clones' do
- expect(subject.add_message).to be_nil
- end
- end
- end
-
- describe '#message' do
- shared_examples 'errors per protocol' do
- shared_examples 'returns redirect message' do
- it do
- message = <<~MSG
- Project '#{redirect_path}' was moved to '#{project.full_path}'.
-
- Please update your Git remote:
-
- git remote set-url origin #{url_to_repo}
- MSG
-
- expect(subject.message).to eq(message)
- end
- end
-
- context 'when protocol is http' do
- it_behaves_like 'returns redirect message' do
- let(:url_to_repo) { http_url_to_repo }
- end
- end
-
- context 'when protocol is ssh' do
- let(:protocol) { 'ssh' }
-
- it_behaves_like 'returns redirect message' do
- let(:url_to_repo) { ssh_url_to_repo }
- end
- end
- end
-
- context 'with project' do
- it_behaves_like 'errors per protocol' do
- let(:http_url_to_repo) { project.http_url_to_repo }
- let(:ssh_url_to_repo) { project.ssh_url_to_repo }
- end
- end
-
- context 'with wiki' do
- let(:repository) { project.wiki.repository }
-
- it_behaves_like 'errors per protocol' do
- let(:http_url_to_repo) { project.wiki.http_url_to_repo }
- let(:ssh_url_to_repo) { project.wiki.ssh_url_to_repo }
- end
- end
-
- context 'with project snippet' do
- let_it_be(:snippet) { create(:project_snippet, :repository, project: project, author: user) }
-
- let(:repository) { snippet.repository }
-
- it_behaves_like 'errors per protocol' do
- let(:http_url_to_repo) { snippet.http_url_to_repo }
- let(:ssh_url_to_repo) { snippet.ssh_url_to_repo }
- end
- end
-
- context 'with personal snippet' do
- let_it_be(:snippet) { create(:personal_snippet, :repository, author: user) }
-
- let(:repository) { snippet.repository }
-
- it 'returns nil' do
- expect(subject.add_message).to be_nil
- end
- end
- end
-end