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/helpers/merge_requests_helper_spec.rb')
-rw-r--r--spec/helpers/merge_requests_helper_spec.rb72
1 files changed, 72 insertions, 0 deletions
diff --git a/spec/helpers/merge_requests_helper_spec.rb b/spec/helpers/merge_requests_helper_spec.rb
index 6b43e97a0b4..93df9d5f94b 100644
--- a/spec/helpers/merge_requests_helper_spec.rb
+++ b/spec/helpers/merge_requests_helper_spec.rb
@@ -3,7 +3,14 @@
require 'spec_helper'
RSpec.describe MergeRequestsHelper, feature_category: :code_review_workflow do
+ include Users::CalloutsHelper
+ include ApplicationHelper
+ include PageLayoutHelper
+ include ProjectsHelper
include ProjectForksHelper
+ include IconsHelper
+
+ let_it_be(:current_user) { create(:user) }
describe '#format_mr_branch_names' do
describe 'within the same project' do
@@ -27,7 +34,31 @@ RSpec.describe MergeRequestsHelper, feature_category: :code_review_workflow do
end
end
+ describe '#diffs_tab_pane_data' do
+ subject { diffs_tab_pane_data(project, merge_request, {}) }
+
+ context 'for endpoint_diff_for_path' do
+ context 'when sub-group project namespace' do
+ let_it_be(:group) { create(:group, :public) }
+ let_it_be(:subgroup) { create(:group, :private, parent: group) }
+ let_it_be(:project) { create(:project, :private, group: subgroup) }
+ let_it_be(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
+
+ it 'returns expected values' do
+ expect(
+ subject[:endpoint_diff_for_path]
+ ).to include("#{project.full_path}/-/merge_requests/#{merge_request.iid}/diff_for_path.json")
+ end
+ end
+ end
+ end
+
describe '#merge_path_description' do
+ # Using let_it_be(:project) raises the following error, so we use need to use let(:project):
+ # ActiveRecord::InvalidForeignKey:
+ # PG::ForeignKeyViolation: ERROR: insert or update on table "fork_network_members" violates foreign key
+ # constraint "fk_rails_a40860a1ca"
+ # DETAIL: Key (fork_network_id)=(8) is not present in table "fork_networks".
let(:project) { create(:project) }
let(:forked_project) { fork_project(project) }
let(:merge_request_forked) { create(:merge_request, source_project: forked_project, target_project: project) }
@@ -150,4 +181,45 @@ RSpec.describe MergeRequestsHelper, feature_category: :code_review_workflow do
end
end
end
+
+ describe '#merge_request_source_branch' do
+ let_it_be(:project) { create(:project) }
+ let(:forked_project) { fork_project(project) }
+ let(:merge_request_forked) { create(:merge_request, source_project: forked_project, target_project: project) }
+ let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
+
+ context 'when merge request is a fork' do
+ subject { merge_request_source_branch(merge_request_forked) }
+
+ it 'does show the fork icon' do
+ expect(subject).to match(/fork/)
+ end
+ end
+
+ context 'when merge request is not a fork' do
+ subject { merge_request_source_branch(merge_request) }
+
+ it 'does not show the fork icon' do
+ expect(subject).not_to match(/fork/)
+ end
+ end
+ end
+
+ describe '#tab_count_display' do
+ let(:merge_request) { create(:merge_request) }
+
+ context 'when merge request is preparing' do
+ before do
+ allow(merge_request).to receive(:preparing?).and_return(true)
+ end
+
+ it { expect(tab_count_display(merge_request, 0)).to eq('-') }
+ it { expect(tab_count_display(merge_request, '0')).to eq('-') }
+ end
+
+ context 'when merge request is prepared' do
+ it { expect(tab_count_display(merge_request, 10)).to eq(10) }
+ it { expect(tab_count_display(merge_request, '10')).to eq('10') }
+ end
+ end
end