diff options
Diffstat (limited to 'spec/lib/banzai/reference_parser')
3 files changed, 25 insertions, 10 deletions
diff --git a/spec/lib/banzai/reference_parser/commit_parser_spec.rb b/spec/lib/banzai/reference_parser/commit_parser_spec.rb index 612ce6b93f1..31cece108bf 100644 --- a/spec/lib/banzai/reference_parser/commit_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/commit_parser_spec.rb @@ -130,11 +130,11 @@ RSpec.describe Banzai::ReferenceParser::CommitParser do end context 'when checking commits on another projects' do - let(:control_links) do + let!(:control_links) do [commit_link] end - let(:actual_links) do + let!(:actual_links) do control_links + [commit_link, commit_link] end diff --git a/spec/lib/banzai/reference_parser/issue_parser_spec.rb b/spec/lib/banzai/reference_parser/issue_parser_spec.rb index 76f13e7b3aa..7de78710d34 100644 --- a/spec/lib/banzai/reference_parser/issue_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/issue_parser_spec.rb @@ -5,9 +5,11 @@ require 'spec_helper' RSpec.describe Banzai::ReferenceParser::IssueParser do include ReferenceParserHelpers - let(:project) { create(:project, :public) } - let(:user) { create(:user) } - let(:issue) { create(:issue, project: project) } + let_it_be(:group) { create(:group, :public) } + let_it_be(:project) { create(:project, :public, group: group) } + let_it_be(:user) { create(:user) } + let_it_be(:issue) { create(:issue, project: project) } + let(:link) { empty_html_link } subject { described_class.new(Banzai::RenderContext.new(project, user)) } @@ -121,7 +123,7 @@ RSpec.describe Banzai::ReferenceParser::IssueParser do end end - context 'when checking multiple merge requests on another project' do + context 'when checking multiple issues on another project' do let(:other_project) { create(:project, :public) } let(:other_issue) { create(:issue, project: other_project) } diff --git a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb index 1820141c898..04c35c8b082 100644 --- a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb @@ -5,9 +5,11 @@ require 'spec_helper' RSpec.describe Banzai::ReferenceParser::MergeRequestParser do include ReferenceParserHelpers + let(:group) { create(:group, :public) } + let(:project) { create(:project, :public, group: group) } let(:user) { create(:user) } - let(:project) { create(:project, :public) } let(:merge_request) { create(:merge_request, source_project: project) } + subject(:parser) { described_class.new(Banzai::RenderContext.new(merge_request.target_project, user)) } let(:link) { empty_html_link } @@ -16,10 +18,19 @@ RSpec.describe Banzai::ReferenceParser::MergeRequestParser do context 'when the link has a data-issue attribute' do before do project.update_attribute(:visibility_level, Gitlab::VisibilityLevel::PUBLIC) + link['data-project'] = merge_request.project_id.to_s link['data-merge-request'] = merge_request.id.to_s end it_behaves_like "referenced feature visibility", "merge_requests" + + context 'when optimize_merge_request_parser feature flag is off' do + before do + stub_feature_flags(optimize_merge_request_parser: false) + end + + it_behaves_like "referenced feature visibility", "merge_requests" + end end end @@ -27,6 +38,7 @@ RSpec.describe Banzai::ReferenceParser::MergeRequestParser do describe 'when the link has a data-merge-request attribute' do context 'using an existing merge request ID' do it 'returns an Array of merge requests' do + link['data-project'] = merge_request.project_id.to_s link['data-merge-request'] = merge_request.id.to_s expect(subject.referenced_by([link])).to eq([merge_request]) @@ -35,6 +47,7 @@ RSpec.describe Banzai::ReferenceParser::MergeRequestParser do context 'using a non-existing merge request ID' do it 'returns an empty Array' do + link['data-project'] = merge_request.project_id.to_s link['data-merge-request'] = '' expect(subject.referenced_by([link])).to eq([]) @@ -47,16 +60,16 @@ RSpec.describe Banzai::ReferenceParser::MergeRequestParser do let(:other_project) { create(:project, :public) } let(:other_merge_request) { create(:merge_request, source_project: other_project) } - let(:control_links) do + let!(:control_links) do [merge_request_link(other_merge_request)] end - let(:actual_links) do + let!(:actual_links) do control_links + [merge_request_link(create(:merge_request, :conflict, source_project: other_project))] end def merge_request_link(merge_request) - Nokogiri::HTML.fragment(%Q{<a data-merge-request="#{merge_request.id}"></a>}).children[0] + Nokogiri::HTML.fragment(%Q{<a data-project="#{merge_request.project_id}" data-merge-request="#{merge_request.id}"></a>}).children[0] end before do |