summaryrefslogtreecommitdiff
path: root/spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-10-22 11:31:16 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-10-22 11:31:16 +0000
commit905c1110b08f93a19661cf42a276c7ea90d0a0ff (patch)
tree756d138db422392c00471ab06acdff92c5a9b69c /spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb
parent50d93f8d1686950fc58dda4823c4835fd0d8c14b (diff)
downloadgitlab-ce-905c1110b08f93a19661cf42a276c7ea90d0a0ff.tar.gz
Add latest changes from gitlab-org/gitlab@12-4-stable-ee
Diffstat (limited to 'spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb')
-rw-r--r--spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb b/spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb
new file mode 100644
index 00000000000..26984a1fb5e
--- /dev/null
+++ b/spec/features/merge_request/user_views_merge_request_from_deleted_fork_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+require 'spec_helper'
+
+# This is a feature spec because the problems arrise when rendering the view for
+# an actual project for which the repository is removed but the cached not
+# updated.
+# This can occur when the fork a merge request is created from is in the process
+# of being destroyed.
+describe 'User views merged merge request from deleted fork' do
+ include ProjectForksHelper
+
+ let(:project) { create(:project, :repository) }
+ let(:source_project) { fork_project(project, nil, repository: true) }
+ let(:user) { project.owner }
+ let!(:merge_request) { create(:merge_request, :merged, source_project: source_project, target_project: project) }
+
+ before do
+ sign_in user
+
+ fork_owner = source_project.namespace.owners.first
+ # Place the source_project in the weird in between state
+ source_project.update_attribute(:pending_delete, true)
+ Projects::DestroyService.new(source_project, fork_owner, {}).__send__(:trash_repositories!)
+ end
+
+ it 'correctly shows the merge request' do
+ visit(merge_request_path(merge_request))
+
+ expect(page).to have_content(merge_request.title)
+ end
+end