diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-21 00:09:21 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-21 00:09:21 +0300 |
commit | c972699d3975e61785389602bfc8078d3bc40091 (patch) | |
tree | 37099f37fbe720f3dc988cbb6d92359428243eaf /spec/lib | |
parent | 995bcca3fc5544e5d2d8ee274dc9275d5b4ce375 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
22 files changed, 155 insertions, 103 deletions
diff --git a/spec/lib/banzai/filter/autolink_filter_spec.rb b/spec/lib/banzai/filter/autolink_filter_spec.rb index 2c75377ec42..c8b5a9ffa0b 100644 --- a/spec/lib/banzai/filter/autolink_filter_spec.rb +++ b/spec/lib/banzai/filter/autolink_filter_spec.rb @@ -169,7 +169,7 @@ RSpec.describe Banzai::Filter::AutolinkFilter, feature_category: :team_planning it 'removes one closing punctuation mark when the punctuation in the link is unbalanced' do complicated_link = "(#{link}(a'b[c'd]))'" - expected_complicated_link = %Q{(<a href="#{link}(a'b[c'd]))">#{link}(a'b[c'd]))</a>'} + expected_complicated_link = %{(<a href="#{link}(a'b[c'd]))">#{link}(a'b[c'd]))</a>'} actual = unescape(filter(complicated_link).to_html) expect(actual).to eq(Rinku.auto_link(complicated_link)) @@ -178,7 +178,7 @@ RSpec.describe Banzai::Filter::AutolinkFilter, feature_category: :team_planning it 'does not double-encode HTML entities' do encoded_link = "#{link}?foo=bar&baz=quux" - expected_encoded_link = %Q{<a href="#{encoded_link}">#{encoded_link}</a>} + expected_encoded_link = %{<a href="#{encoded_link}">#{encoded_link}</a>} actual = unescape(filter(encoded_link).to_html) expect(actual).to eq(Rinku.auto_link(encoded_link)) diff --git a/spec/lib/banzai/filter/external_link_filter_spec.rb b/spec/lib/banzai/filter/external_link_filter_spec.rb index de259342998..300b8601dcb 100644 --- a/spec/lib/banzai/filter/external_link_filter_spec.rb +++ b/spec/lib/banzai/filter/external_link_filter_spec.rb @@ -34,7 +34,7 @@ RSpec.describe Banzai::Filter::ExternalLinkFilter, feature_category: :team_plann it 'skips internal links' do internal = Gitlab.config.gitlab.url - exp = act = %Q(<a href="#{internal}/sign_in">Login</a>) + exp = act = %(<a href="#{internal}/sign_in">Login</a>) expect(filter(act).to_html).to eq exp end @@ -90,7 +90,7 @@ RSpec.describe Banzai::Filter::ExternalLinkFilter, feature_category: :team_plann context 'with an impersonated username' do let(:internal) { Gitlab.config.gitlab.url } - let(:doc) { filter %Q(<a href="https://#{internal}@example.com" target="_blank">Reverse Tabnabbing</a>) } + let(:doc) { filter %(<a href="https://#{internal}@example.com" target="_blank">Reverse Tabnabbing</a>) } it_behaves_like 'an external link with rel attribute' end @@ -112,8 +112,8 @@ RSpec.describe Banzai::Filter::ExternalLinkFilter, feature_category: :team_plann it 'skips internal links' do internal_link = Gitlab.config.gitlab.url + "/sign_in" url = internal_link.gsub(/\Ahttp/, 'HtTp') - act = %Q(<a href="#{url}">Login</a>) - exp = %Q(<a href="#{internal_link}">Login</a>) + act = %(<a href="#{url}">Login</a>) + exp = %(<a href="#{internal_link}">Login</a>) expect(filter(act).to_html).to eq(exp) end @@ -131,7 +131,7 @@ RSpec.describe Banzai::Filter::ExternalLinkFilter, feature_category: :team_plann context 'links with RTLO character' do # In rendered text this looks like "http://example.com/evilexe.mp3" - let(:doc) { filter %Q(<a href="http://example.com/evil%E2%80%AE3pm.exe">http://example.com/evil\u202E3pm.exe</a>) } + let(:doc) { filter %(<a href="http://example.com/evil%E2%80%AE3pm.exe">http://example.com/evil\u202E3pm.exe</a>) } it_behaves_like 'an external link with rel attribute' @@ -142,7 +142,7 @@ RSpec.describe Banzai::Filter::ExternalLinkFilter, feature_category: :team_plann end it 'does not mangle the link text' do - doc = filter %Q(<a href="http://example.com">One<span>and</span>\u202Eexe.mp3</a>) + doc = filter %(<a href="http://example.com">One<span>and</span>\u202Eexe.mp3</a>) expect(doc.to_html).to include('One<span>and</span>%E2%80%AEexe.mp3</a>') end diff --git a/spec/lib/banzai/filter/image_link_filter_spec.rb b/spec/lib/banzai/filter/image_link_filter_spec.rb index 2d496c447e1..5238f05f4bd 100644 --- a/spec/lib/banzai/filter/image_link_filter_spec.rb +++ b/spec/lib/banzai/filter/image_link_filter_spec.rb @@ -9,8 +9,8 @@ RSpec.describe Banzai::Filter::ImageLinkFilter, feature_category: :team_planning let(:context) { {} } def image(path, alt: nil, data_src: nil) - alt_tag = alt ? %Q{alt="#{alt}"} : "" - data_src_tag = data_src ? %Q{data-src="#{data_src}"} : "" + alt_tag = alt ? %{alt="#{alt}"} : "" + data_src_tag = data_src ? %{data-src="#{data_src}"} : "" %(<img src="#{path}" #{alt_tag} #{data_src_tag} />) end @@ -22,7 +22,7 @@ RSpec.describe Banzai::Filter::ImageLinkFilter, feature_category: :team_planning end it 'does not wrap a duplicate link' do - doc = filter(%Q(<a href="/whatever">#{image(path)}</a>), context) + doc = filter(%(<a href="/whatever">#{image(path)}</a>), context) expect(doc.to_html).to match %r{^<a href="/whatever"><img[^>]*></a>$} end @@ -34,7 +34,7 @@ RSpec.describe Banzai::Filter::ImageLinkFilter, feature_category: :team_planning end it 'works with inline images' do - doc = filter(%Q(<p>test #{image(path)} inline</p>), context) + doc = filter(%(<p>test #{image(path)} inline</p>), context) expect(doc.to_html).to match %r{^<p>test <a[^>]*><img[^>]*></a> inline</p>$} end diff --git a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb index f8d223c6611..91b051d71ec 100644 --- a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb @@ -344,7 +344,7 @@ RSpec.describe Banzai::Filter::References::LabelReferenceFilter, feature_categor end describe 'referencing a label in a link href' do - let(:reference) { %Q{<a href="#{label.to_reference}">Label</a>} } + let(:reference) { %{<a href="#{label.to_reference}">Label</a>} } it 'links to a valid reference' do doc = reference_filter("See #{reference}") diff --git a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb index ecd5d1368c9..7caa6efff66 100644 --- a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb @@ -132,7 +132,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat shared_examples 'referencing a milestone in a link href' do let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" } - let(:link_reference) { %Q{<a href="#{unquoted_reference}">Milestone</a>} } + let(:link_reference) { %{<a href="#{unquoted_reference}">Milestone</a>} } before do milestone.update!(name: 'gfm') @@ -169,7 +169,7 @@ RSpec.describe Banzai::Filter::References::MilestoneReferenceFilter, feature_cat shared_examples 'linking to a milestone as the entire link' do let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" } let(:link) { urls.milestone_url(milestone) } - let(:link_reference) { %Q{<a href="#{link}">#{link}</a>} } + let(:link_reference) { %{<a href="#{link}">#{link}</a>} } it 'replaces the link text with the milestone reference' do doc = reference_filter("See #{link}") diff --git a/spec/lib/banzai/pipeline/full_pipeline_spec.rb b/spec/lib/banzai/pipeline/full_pipeline_spec.rb index 5d56035f6df..6ef03b58f67 100644 --- a/spec/lib/banzai/pipeline/full_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/full_pipeline_spec.rb @@ -28,7 +28,7 @@ RSpec.describe Banzai::Pipeline::FullPipeline, feature_category: :team_planning end it 'escapes the data-original attribute on a reference' do - markdown = %Q{[">bad things](#{issue.to_reference})} + markdown = %{[">bad things](#{issue.to_reference})} result = described_class.to_html(markdown, project: project) expect(result).to include(%{data-original='\"&gt;bad things'}) end diff --git a/spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb b/spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb index 12a6be6bc18..9e79be4333a 100644 --- a/spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/incident_management/timeline_event_pipeline_spec.rb @@ -73,7 +73,7 @@ RSpec.describe Banzai::Pipeline::IncidentManagement::TimelineEventPipeline do context 'when markdown contains labels' do let(:label) { create(:label, project: project, title: 'backend') } - let(:markdown) { %Q(~"#{label.name}" ~unknown) } + let(:markdown) { %(~"#{label.name}" ~unknown) } it 'replaces existing label to a link' do # rubocop:disable Layout/LineLength diff --git a/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb b/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb index 8ff0fa3ae1e..ae01939605e 100644 --- a/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb @@ -64,9 +64,9 @@ RSpec.describe Banzai::Pipeline::PlainMarkdownPipeline, feature_category: :team_ describe 'backslash escapes are untouched in code blocks, code spans, autolinks, or raw HTML' do where(:markdown, :expected) do %q(`` \@\! ``) | %q(<code>\@\!</code>) - %q( \@\!) | %Q(<code>\\@\\!\n</code>) - %Q(~~~\n\\@\\!\n~~~) | %Q(<code>\\@\\!\n</code>) - %q($1+\$2$) | %q(<code data-math-style="inline">1+\\$2</code>) + %q( \@\!) | %(<code>\\@\\!\n</code>) + %(~~~\n\\@\\!\n~~~) | %(<code>\\@\\!\n</code>) + %q($1+\$2$) | %q(<code data-math-style="inline">1+\\$2</code>) %q(<http://example.com?find=\@>) | %q(<a href="http://example.com?find=%5C@">http://example.com?find=\@</a>) %q[<a href="/bar\@)">] | %q[<a href="/bar\@)">] end @@ -77,15 +77,15 @@ RSpec.describe Banzai::Pipeline::PlainMarkdownPipeline, feature_category: :team_ end describe 'work in all other contexts, including URLs and link titles, link references, and info strings in fenced code blocks' do - let(:markdown) { %Q(``` foo\\@bar\nfoo\n```) } + let(:markdown) { %(``` foo\\@bar\nfoo\n```) } it 'renders correct html' do - correct_html_included(markdown, %Q(<pre lang="foo@bar"><code>foo\n</code></pre>)) + correct_html_included(markdown, %(<pre lang="foo@bar"><code>foo\n</code></pre>)) end where(:markdown, :expected) do - %q![foo](/bar\@ "\@title")! | %q(<a href="/bar@" title="@title">foo</a>) - %Q![foo]\n\n[foo]: /bar\\@ "\\@title"! | %q(<a href="/bar@" title="@title">foo</a>) + %q![foo](/bar\@ "\@title")! | %q(<a href="/bar@" title="@title">foo</a>) + %![foo]\n\n[foo]: /bar\\@ "\\@title"! | %q(<a href="/bar@" title="@title">foo</a>) end with_them do diff --git a/spec/lib/banzai/reference_parser/issue_parser_spec.rb b/spec/lib/banzai/reference_parser/issue_parser_spec.rb index 2efdb928b6f..072df6a23aa 100644 --- a/spec/lib/banzai/reference_parser/issue_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/issue_parser_spec.rb @@ -136,7 +136,7 @@ RSpec.describe Banzai::ReferenceParser::IssueParser, feature_category: :team_pla end def issue_link(issue) - Nokogiri::HTML.fragment(%Q{<a data-issue="#{issue.id}"></a>}).children[0] + Nokogiri::HTML.fragment(%{<a data-issue="#{issue.id}"></a>}).children[0] end before do 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 eead5019217..bab535b67bf 100644 --- a/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/merge_request_parser_spec.rb @@ -61,7 +61,7 @@ RSpec.describe Banzai::ReferenceParser::MergeRequestParser, feature_category: :c end def merge_request_link(merge_request) - Nokogiri::HTML.fragment(%Q{<a data-project="#{merge_request.project_id}" data-merge-request="#{merge_request.id}"></a>}).children[0] + Nokogiri::HTML.fragment(%{<a data-project="#{merge_request.project_id}" data-merge-request="#{merge_request.id}"></a>}).children[0] end before do diff --git a/spec/lib/gitlab/cache/client_spec.rb b/spec/lib/gitlab/cache/client_spec.rb index 638fed1a905..6543381b86a 100644 --- a/spec/lib/gitlab/cache/client_spec.rb +++ b/spec/lib/gitlab/cache/client_spec.rb @@ -3,52 +3,32 @@ require 'spec_helper' RSpec.describe Gitlab::Cache::Client, feature_category: :source_code_management do - subject(:client) { described_class.new(metadata, backend: backend) } + subject(:client) { described_class.new(metrics, backend: backend) } + let(:metrics) { Gitlab::Cache::Metrics.new(metadata) } let(:backend) { Rails.cache } - let(:metadata) do - Gitlab::Cache::Metadata.new( - cache_identifier: cache_identifier, - feature_category: feature_category, - backing_resource: backing_resource - ) - end let(:cache_identifier) { 'MyClass#cache' } let(:feature_category) { :source_code_management } let(:backing_resource) { :cpu } - let(:metadata_mock) do + let(:metadata) do Gitlab::Cache::Metadata.new( cache_identifier: cache_identifier, - feature_category: feature_category + feature_category: feature_category, + backing_resource: backing_resource ) end - let(:metrics_mock) { Gitlab::Cache::Metrics.new(metadata_mock) } - - describe '.build_with_metadata' do - it 'builds a cache client with metrics support' do - attributes = { - cache_identifier: cache_identifier, - feature_category: feature_category, - backing_resource: backing_resource - } - - instance = described_class.build_with_metadata(**attributes) - - expect(instance).to be_a(described_class) - expect(instance.metadata).to have_attributes(**attributes) - end + let(:labels) do + { + feature_category: :audit_events + } end describe 'Methods', :use_clean_rails_memory_store_caching do let(:expected_key) { 'key' } - before do - allow(Gitlab::Cache::Metrics).to receive(:new).and_return(metrics_mock) - end - describe '#read' do context 'when key does not exist' do it 'returns nil' do @@ -56,9 +36,9 @@ RSpec.describe Gitlab::Cache::Client, feature_category: :source_code_management end it 'increments cache miss' do - expect(metrics_mock).to receive(:increment_cache_miss) + expect(metrics).to receive(:increment_cache_miss).with(labels).and_call_original - client.read('key') + expect(client.read('key', nil, labels)).to be_nil end end @@ -72,9 +52,9 @@ RSpec.describe Gitlab::Cache::Client, feature_category: :source_code_management end it 'increments cache hit' do - expect(metrics_mock).to receive(:increment_cache_hit) + expect(metrics).to receive(:increment_cache_hit).with(labels) - client.read('key') + expect(client.read('key', nil, labels)).to eq('value') end end end @@ -125,13 +105,13 @@ RSpec.describe Gitlab::Cache::Client, feature_category: :source_code_management end it 'increments a cache hit' do - expect(metrics_mock).to receive(:increment_cache_hit) + expect(metrics).to receive(:increment_cache_hit).with(labels) - client.fetch('key') + expect(client.fetch('key', nil, labels)).to eq('value') end it 'does not measure the cache generation time' do - expect(metrics_mock).not_to receive(:observe_cache_generation) + expect(metrics).not_to receive(:observe_cache_generation) client.fetch('key') { 'new-value' } end @@ -145,15 +125,15 @@ RSpec.describe Gitlab::Cache::Client, feature_category: :source_code_management end it 'increments a cache miss' do - expect(metrics_mock).to receive(:increment_cache_miss) + expect(metrics).to receive(:increment_cache_miss).with(labels) - client.fetch('key') + expect(client.fetch('key', nil, labels) { 'value' }).to eq('value') end it 'measures the cache generation time' do - expect(metrics_mock).to receive(:observe_cache_generation) + expect(metrics).to receive(:observe_cache_generation).with(labels).and_call_original - client.fetch('key') { 'value' } + expect(client.fetch('key', nil, labels) { 'value' }).to eq('value') end end end diff --git a/spec/lib/gitlab/cache/metadata_spec.rb b/spec/lib/gitlab/cache/metadata_spec.rb index d2b79fb8b08..29c30d526ad 100644 --- a/spec/lib/gitlab/cache/metadata_spec.rb +++ b/spec/lib/gitlab/cache/metadata_spec.rb @@ -19,11 +19,11 @@ RSpec.describe Gitlab::Cache::Metadata, feature_category: :source_code_managemen context 'when optional arguments are not set' do it 'sets default value for them' do attributes = described_class.new( - cache_identifier: cache_identifier, feature_category: feature_category ) expect(attributes.backing_resource).to eq(:unknown) + expect(attributes.cache_identifier).to be_nil end end diff --git a/spec/lib/gitlab/cache/metrics_spec.rb b/spec/lib/gitlab/cache/metrics_spec.rb index 76ec0dbfa0b..c46533371d3 100644 --- a/spec/lib/gitlab/cache/metrics_spec.rb +++ b/spec/lib/gitlab/cache/metrics_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Gitlab::Cache::Metrics do +RSpec.describe Gitlab::Cache::Metrics, feature_category: :source_code_management do subject(:metrics) { described_class.new(metadata) } let(:metadata) do @@ -23,12 +23,19 @@ RSpec.describe Gitlab::Cache::Metrics do allow(Gitlab::Metrics).to receive(:counter) .with( :redis_hit_miss_operations_total, - 'Hit/miss Redis cache counter' + 'Hit/miss Redis cache counter', + { + cache_identifier: cache_identifier, + feature_category: feature_category, + backing_resource: backing_resource + } ).and_return(counter_mock) end describe '#increment_cache_hit' do - subject { metrics.increment_cache_hit } + subject { metrics.increment_cache_hit(labels) } + + let(:labels) { {} } it 'increments number of hits' do expect(counter_mock) @@ -44,10 +51,31 @@ RSpec.describe Gitlab::Cache::Metrics do subject end + + context 'when labels redefine defaults' do + let(:labels) { { backing_resource: :gitaly } } + + it 'increments number of hits' do + expect(counter_mock) + .to receive(:increment) + .with( + { + backing_resource: :gitaly, + cache_identifier: cache_identifier, + feature_category: feature_category, + cache_hit: true + } + ).once + + subject + end + end end describe '#increment_cache_miss' do - subject { metrics.increment_cache_miss } + subject { metrics.increment_cache_miss(labels) } + + let(:labels) { {} } it 'increments number of misses' do expect(counter_mock) @@ -63,22 +91,40 @@ RSpec.describe Gitlab::Cache::Metrics do subject end + + context 'when labels redefine defaults' do + let(:labels) { { backing_resource: :gitaly } } + + it 'increments number of misses' do + expect(counter_mock) + .to receive(:increment) + .with( + { + backing_resource: :gitaly, + cache_identifier: cache_identifier, + feature_category: feature_category, + cache_hit: false + } + ).once + + subject + end + end end describe '#observe_cache_generation' do subject do - metrics.observe_cache_generation { action } + metrics.observe_cache_generation(labels) { action } end let(:action) { 'action' } let(:histogram_mock) { instance_double(Prometheus::Client::Histogram) } + let(:labels) { {} } before do allow(Gitlab::Metrics::System).to receive(:monotonic_time).and_return(100.0, 500.0) - end - it 'updates histogram metric' do - expect(Gitlab::Metrics).to receive(:histogram).with( + allow(Gitlab::Metrics).to receive(:histogram).with( :redis_cache_generation_duration_seconds, 'Duration of Redis cache generation', { @@ -88,10 +134,36 @@ RSpec.describe Gitlab::Cache::Metrics do }, [0, 1, 5] ).and_return(histogram_mock) + end - expect(histogram_mock).to receive(:observe).with({}, 400.0) + it 'updates histogram metric' do + expect(histogram_mock).to receive(:observe).with( + { + cache_identifier: cache_identifier, + feature_category: feature_category, + backing_resource: backing_resource + }, + 400.0 + ) is_expected.to eq(action) end + + context 'when labels redefine defaults' do + let(:labels) { { backing_resource: :gitaly } } + + it 'updates histogram metric' do + expect(histogram_mock).to receive(:observe).with( + { + cache_identifier: cache_identifier, + feature_category: feature_category, + backing_resource: :gitaly + }, + 400.0 + ) + + is_expected.to eq(action) + end + end end end diff --git a/spec/lib/gitlab/diff/highlight_spec.rb b/spec/lib/gitlab/diff/highlight_spec.rb index 233dddbdad7..e39c15c8fd7 100644 --- a/spec/lib/gitlab/diff/highlight_spec.rb +++ b/spec/lib/gitlab/diff/highlight_spec.rb @@ -38,19 +38,19 @@ RSpec.describe Gitlab::Diff::Highlight, feature_category: :source_code_managemen end it 'highlights and marks unchanged lines' do - code = %Q{ <span id="LC7" class="line" lang="ruby"> <span class="k">def</span> <span class="nf">popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="kp">nil</span><span class="p">)</span></span>\n} + code = %{ <span id="LC7" class="line" lang="ruby"> <span class="k">def</span> <span class="nf">popen</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="kp">nil</span><span class="p">)</span></span>\n} expect(subject[2].rich_text).to eq(code) end it 'highlights and marks removed lines' do - code = %Q{-<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="s2">"System commands must be given as an array of strings"</span></span>\n} + code = %{-<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="s2">"System commands must be given as an array of strings"</span></span>\n} expect(subject[4].rich_text).to eq(code) end it 'highlights and marks added lines' do - code = %Q{+<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="no"><span class="idiff left addition">RuntimeError</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff right addition"> </span><span class="s2">"System commands must be given as an array of strings"</span></span>\n} + code = %{+<span id="LC9" class="line" lang="ruby"> <span class="k">raise</span> <span class="no"><span class="idiff left addition">RuntimeError</span></span><span class="p"><span class="idiff addition">,</span></span><span class="idiff right addition"> </span><span class="s2">"System commands must be given as an array of strings"</span></span>\n} expect(subject[5].rich_text).to eq(code) end @@ -135,7 +135,7 @@ RSpec.describe Gitlab::Diff::Highlight, feature_category: :source_code_managemen it 'blobs are highlighted as plain text without loading all data' do expect(diff_file.blob).not_to receive(:load_all_data!) - expect(subject[2].rich_text).to eq(%Q{ <span id="LC7" class="line" lang=""> def popen(cmd, path=nil)</span>\n}) + expect(subject[2].rich_text).to eq(%{ <span id="LC7" class="line" lang=""> def popen(cmd, path=nil)</span>\n}) expect(subject[2].rich_text).to be_html_safe end end diff --git a/spec/lib/gitlab/error_tracking/stack_trace_highlight_decorator_spec.rb b/spec/lib/gitlab/error_tracking/stack_trace_highlight_decorator_spec.rb index 73ebee49169..a854adca32b 100644 --- a/spec/lib/gitlab/error_tracking/stack_trace_highlight_decorator_spec.rb +++ b/spec/lib/gitlab/error_tracking/stack_trace_highlight_decorator_spec.rb @@ -28,7 +28,7 @@ RSpec.describe Gitlab::ErrorTracking::StackTraceHighlightDecorator do [11, '<span id="LC1" class="line" lang="ruby"><span class="k">class</span> <span class="nc">HelloWorld</span></span>'], [12, '<span id="LC1" class="line" lang="ruby"> <span class="k">def</span> <span class="nc">self</span><span class="o">.</span><span class="nf">message</span></span>'], [13, '<span id="LC1" class="line" lang="ruby"> <span class="vi">@name</span> <span class="o">=</span> <span class="s1">\'World\'</span></span>'], - [14, %Q[<span id="LC1" class="line" lang="ruby"> <span class="nb">puts</span> <span class="s2">"Hello </span><span class="si">\#{</span><span class="vi">@name</span><span class="si">}</span><span class="s2">"</span></span>]], + [14, %[<span id="LC1" class="line" lang="ruby"> <span class="nb">puts</span> <span class="s2">"Hello </span><span class="si">\#{</span><span class="vi">@name</span><span class="si">}</span><span class="s2">"</span></span>]], [15, '<span id="LC1" class="line" lang="ruby"> <span class="k">end</span></span>'], [16, '<span id="LC1" class="line" lang="ruby"><span class="k">end</span></span>'] ] diff --git a/spec/lib/gitlab/gfm/reference_rewriter_spec.rb b/spec/lib/gitlab/gfm/reference_rewriter_spec.rb index 8bb649e78e0..6de7cab9c42 100644 --- a/spec/lib/gitlab/gfm/reference_rewriter_spec.rb +++ b/spec/lib/gitlab/gfm/reference_rewriter_spec.rb @@ -78,13 +78,13 @@ RSpec.describe Gitlab::Gfm::ReferenceRewriter do context 'label referenced by id' do let(:text) { '#1 and ~123' } - it { is_expected.to eq %Q{#{old_project_ref}#1 and #{old_project_ref}~123} } + it { is_expected.to eq %{#{old_project_ref}#1 and #{old_project_ref}~123} } end context 'label referenced by text' do let(:text) { '#1 and ~"test"' } - it { is_expected.to eq %Q{#{old_project_ref}#1 and #{old_project_ref}~123} } + it { is_expected.to eq %{#{old_project_ref}#1 and #{old_project_ref}~123} } end end @@ -99,13 +99,13 @@ RSpec.describe Gitlab::Gfm::ReferenceRewriter do context 'label referenced by id' do let(:text) { '#1 and ~321' } - it { is_expected.to eq %Q{#{old_project_ref}#1 and #{old_project_ref}~321} } + it { is_expected.to eq %{#{old_project_ref}#1 and #{old_project_ref}~321} } end context 'label referenced by text' do let(:text) { '#1 and ~"group label"' } - it { is_expected.to eq %Q{#{old_project_ref}#1 and #{old_project_ref}~321} } + it { is_expected.to eq %{#{old_project_ref}#1 and #{old_project_ref}~321} } end end end @@ -149,7 +149,7 @@ RSpec.describe Gitlab::Gfm::ReferenceRewriter do let(:text) { 'milestone: %"9.0"' } - it { is_expected.to eq %Q[milestone: #{old_project_ref}%"9.0"] } + it { is_expected.to eq %[milestone: #{old_project_ref}%"9.0"] } end context 'when referring to group milestone' do diff --git a/spec/lib/gitlab/highlight_spec.rb b/spec/lib/gitlab/highlight_spec.rb index d7ae6ed06a4..173131b1d5c 100644 --- a/spec/lib/gitlab/highlight_spec.rb +++ b/spec/lib/gitlab/highlight_spec.rb @@ -34,7 +34,7 @@ RSpec.describe Gitlab::Highlight do end it 'highlights' do - expected = %Q[<span id="LC1" class="line" lang="common_lisp"><span class="p">(</span><span class="nb">make-pathname</span> <span class="ss">:defaults</span> <span class="nv">name</span></span> + expected = %[<span id="LC1" class="line" lang="common_lisp"><span class="p">(</span><span class="nb">make-pathname</span> <span class="ss">:defaults</span> <span class="nv">name</span></span> <span id="LC2" class="line" lang="common_lisp"><span class="ss">:type</span> <span class="s">"assem"</span><span class="p">)</span></span>] expect(described_class.highlight(file_name, content)).to eq(expected) diff --git a/spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb b/spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb index b5ed583b1f1..2e87c582040 100644 --- a/spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb +++ b/spec/lib/gitlab/pagination/gitaly_keyset_pager_spec.rb @@ -106,7 +106,7 @@ RSpec.describe Gitlab::Pagination::GitalyKeysetPager do context 'when next page could be available' do let(:branches) { [branch1, branch2] } - let(:expected_next_page_link) { %Q(<#{incoming_api_projects_url}?#{query.merge(page_token: branch2.name).to_query}>; rel="next") } + let(:expected_next_page_link) { %(<#{incoming_api_projects_url}?#{query.merge(page_token: branch2.name).to_query}>; rel="next") } it 'uses keyset pagination and adds link headers' do expect(request_context).to receive(:header).with('Link', expected_next_page_link) diff --git a/spec/lib/gitlab/pagination/offset_pagination_spec.rb b/spec/lib/gitlab/pagination/offset_pagination_spec.rb index dc32f471756..836b3cb55d6 100644 --- a/spec/lib/gitlab/pagination/offset_pagination_spec.rb +++ b/spec/lib/gitlab/pagination/offset_pagination_spec.rb @@ -44,9 +44,9 @@ RSpec.describe Gitlab::Pagination::OffsetPagination do expect_header('X-Prev-Page', '') expect_header('Link', anything) do |_key, val| - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="last")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="next")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="last")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="next")) expect(val).not_to include('rel="prev"') end @@ -91,8 +91,8 @@ RSpec.describe Gitlab::Pagination::OffsetPagination do expect_header('X-Prev-Page', '') expect_header('Link', anything) do |_key, val| - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="next")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="next")) expect(val).not_to include('rel="last"') expect(val).not_to include('rel="prev"') end @@ -113,8 +113,8 @@ RSpec.describe Gitlab::Pagination::OffsetPagination do expect_header('X-Prev-Page', '') expect_header('Link', anything) do |_key, val| - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="next")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="next")) expect(val).not_to include('rel="last"') expect(val).not_to include('rel="prev"') end @@ -242,9 +242,9 @@ RSpec.describe Gitlab::Pagination::OffsetPagination do expect_header('X-Prev-Page', '1') expect_header('Link', anything) do |_key, val| - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="last")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="prev")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 2).to_query}>; rel="last")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="prev")) expect(val).not_to include('rel="next"') end @@ -291,8 +291,8 @@ RSpec.describe Gitlab::Pagination::OffsetPagination do expect_header('X-Prev-Page', '') expect_header('Link', anything) do |_key, val| - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) - expect(val).to include(%Q(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="last")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="first")) + expect(val).to include(%(<#{incoming_api_projects_url}?#{query.merge(page: 1).to_query}>; rel="last")) expect(val).not_to include('rel="prev"') expect(val).not_to include('rel="next"') expect(val).not_to include('page=0') diff --git a/spec/lib/gitlab/prometheus/query_variables_spec.rb b/spec/lib/gitlab/prometheus/query_variables_spec.rb index d9cac3e1064..d0947eef2d9 100644 --- a/spec/lib/gitlab/prometheus/query_variables_spec.rb +++ b/spec/lib/gitlab/prometheus/query_variables_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Gitlab::Prometheus::QueryVariables do it do is_expected.to include(environment_filter: - %Q[container_name!="POD",environment="#{slug}"]) + %[container_name!="POD",environment="#{slug}"]) end context 'without deployment platform' do diff --git a/spec/lib/gitlab/reference_extractor_spec.rb b/spec/lib/gitlab/reference_extractor_spec.rb index 62fcb4821fc..37db13b76b9 100644 --- a/spec/lib/gitlab/reference_extractor_spec.rb +++ b/spec/lib/gitlab/reference_extractor_spec.rb @@ -31,7 +31,7 @@ RSpec.describe Gitlab::ReferenceExtractor do project.add_reporter(@u_foo) project.add_reporter(@u_bar) - subject.analyze(%Q{ + subject.analyze(%{ Inline code: `@foo` Code block: diff --git a/spec/lib/gitlab/url_sanitizer_spec.rb b/spec/lib/gitlab/url_sanitizer_spec.rb index c02cbef8328..5f76c1de5b1 100644 --- a/spec/lib/gitlab/url_sanitizer_spec.rb +++ b/spec/lib/gitlab/url_sanitizer_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Gitlab::UrlSanitizer do describe '.sanitize' do def sanitize_url(url) # We want to try with multi-line content because is how error messages are formatted - described_class.sanitize(%Q{ + described_class.sanitize(%{ remote: Not Found fatal: repository `#{url}` not found }) |