diff --git a/.rubocop_todo/style/percent_literal_delimiters.yml b/.rubocop_todo/style/percent_literal_delimiters.yml index 5b5fca8cc774399dba48dc146a5212bb17e7ef96..5dc4cf6e056de2e8a0dd784f69b62736bb0b55e7 100644 --- a/.rubocop_todo/style/percent_literal_delimiters.yml +++ b/.rubocop_todo/style/percent_literal_delimiters.yml @@ -3,70 +3,6 @@ Style/PercentLiteralDelimiters: Exclude: - 'metrics_server/metrics_server.rb' - - 'spec/graphql/mutations/alert_management/update_alert_status_spec.rb' - - 'spec/graphql/mutations/ci/runner/update_spec.rb' - - 'spec/graphql/mutations/commits/create_spec.rb' - - 'spec/graphql/resolvers/board_lists_resolver_spec.rb' - - 'spec/graphql/resolvers/container_repository_tags_resolver_spec.rb' - - 'spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb' - - 'spec/graphql/resolvers/projects_resolver_spec.rb' - - 'spec/graphql/types/boards/board_issue_input_type_spec.rb' - - 'spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb' - - 'spec/graphql/types/issue_type_spec.rb' - - 'spec/helpers/appearances_helper_spec.rb' - - 'spec/helpers/application_settings_helper_spec.rb' - - 'spec/helpers/auth_helper_spec.rb' - - 'spec/helpers/breadcrumbs_helper_spec.rb' - - 'spec/helpers/ci/pipelines_helper_spec.rb' - - 'spec/helpers/clusters_helper_spec.rb' - - 'spec/helpers/diff_helper_spec.rb' - - 'spec/helpers/emails_helper_spec.rb' - - 'spec/helpers/issuables_description_templates_helper_spec.rb' - - 'spec/helpers/issues_helper_spec.rb' - - 'spec/helpers/nav_helper_spec.rb' - - 'spec/helpers/page_layout_helper_spec.rb' - - 'spec/helpers/profiles_helper_spec.rb' - - 'spec/helpers/releases_helper_spec.rb' - - 'spec/helpers/tracking_helper_spec.rb' - - 'spec/initializers/direct_upload_support_spec.rb' - - 'spec/initializers/enumerator_next_patch_spec.rb' - - 'spec/initializers/rack_multipart_patch_spec.rb' - - 'spec/lib/api/ci/helpers/runner_helpers_spec.rb' - - 'spec/lib/api/entities/user_spec.rb' - - 'spec/lib/api/helpers/common_helpers_spec.rb' - - 'spec/lib/backup/files_spec.rb' - - 'spec/lib/backup/manager_spec.rb' - - 'spec/lib/backup/repositories_spec.rb' - - 'spec/lib/banzai/filter/asset_proxy_filter_spec.rb' - - 'spec/lib/banzai/filter/autolink_filter_spec.rb' - - 'spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb' - - 'spec/lib/banzai/filter/image_link_filter_spec.rb' - - 'spec/lib/banzai/filter/references/alert_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/commit_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/design_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/issue_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/label_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/project_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/references/user_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/syntax_highlight_filter_spec.rb' - - 'spec/lib/banzai/filter_array_spec.rb' - - 'spec/lib/banzai/pipeline/description_pipeline_spec.rb' - - 'spec/lib/banzai/pipeline/full_pipeline_spec.rb' - - 'spec/lib/banzai/pipeline/gfm_pipeline_spec.rb' - - 'spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb' - - 'spec/lib/banzai/reference_parser/base_parser_spec.rb' - - 'spec/lib/banzai/reference_parser/issue_parser_spec.rb' - - 'spec/lib/banzai/reference_parser/merge_request_parser_spec.rb' - - 'spec/lib/bitbucket/collection_spec.rb' - - 'spec/lib/bitbucket/representation/repo_spec.rb' - - 'spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb' - - 'spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb' - 'spec/lib/gitlab/alert_management/payload/base_spec.rb' - 'spec/lib/gitlab/asset_proxy_spec.rb' - 'spec/lib/gitlab/auth/ldap/auth_hash_spec.rb' @@ -186,7 +122,6 @@ Style/PercentLiteralDelimiters: - 'spec/lib/gitlab/popen_spec.rb' - 'spec/lib/gitlab/process_management_spec.rb' - 'spec/lib/gitlab/process_supervisor_spec.rb' - - 'spec/lib/gitlab/prometheus/query_variables_spec.rb' - 'spec/lib/gitlab/quick_actions/extractor_spec.rb' - 'spec/lib/gitlab/reference_extractor_spec.rb' - 'spec/lib/gitlab/repository_cache_adapter_spec.rb' @@ -261,7 +196,6 @@ Style/PercentLiteralDelimiters: - 'spec/models/diff_viewer/base_spec.rb' - 'spec/models/environment_spec.rb' - 'spec/models/group_label_spec.rb' - - 'spec/models/group_spec.rb' - 'spec/models/instance_configuration_spec.rb' - 'spec/models/integration_spec.rb' - 'spec/models/integrations/buildkite_spec.rb' @@ -279,7 +213,6 @@ Style/PercentLiteralDelimiters: - 'spec/models/project_feature_spec.rb' - 'spec/models/project_label_spec.rb' - 'spec/models/project_spec.rb' - - 'spec/models/project_team_spec.rb' - 'spec/models/projects/topic_spec.rb' - 'spec/models/prometheus_metric_spec.rb' - 'spec/models/releases/link_spec.rb' @@ -320,13 +253,11 @@ Style/PercentLiteralDelimiters: - 'spec/requests/api/graphql/project/terraform/state_spec.rb' - 'spec/requests/api/graphql/project/terraform/states_spec.rb' - 'spec/requests/api/internal/base_spec.rb' - - 'spec/requests/api/invitations_spec.rb' - 'spec/requests/api/issues/get_group_issues_spec.rb' - 'spec/requests/api/issues/get_project_issues_spec.rb' - 'spec/requests/api/issues/issues_spec.rb' - 'spec/requests/api/issues/post_projects_issues_spec.rb' - 'spec/requests/api/issues/put_projects_issues_spec.rb' - - 'spec/requests/api/members_spec.rb' - 'spec/requests/api/merge_requests_spec.rb' - 'spec/requests/api/metadata_spec.rb' - 'spec/requests/api/project_container_repositories_spec.rb' @@ -377,8 +308,6 @@ Style/PercentLiteralDelimiters: - 'spec/services/issues/export_csv_service_spec.rb' - 'spec/services/jira/requests/projects/list_service_spec.rb' - 'spec/services/lfs/file_transformer_spec.rb' - - 'spec/services/members/create_service_spec.rb' - - 'spec/services/members/invite_service_spec.rb' - 'spec/services/merge_requests/conflicts/resolve_service_spec.rb' - 'spec/services/merge_requests/merge_service_spec.rb' - 'spec/services/merge_requests/pushed_branches_service_spec.rb' @@ -422,7 +351,6 @@ Style/PercentLiteralDelimiters: - 'spec/support/shared_examples/metrics/transaction_metrics_with_labels_shared_examples.rb' - 'spec/support/shared_examples/models/application_setting_shared_examples.rb' - 'spec/support/shared_examples/models/diff_positionable_note_shared_examples.rb' - - 'spec/support/shared_examples/models/member_shared_examples.rb' - 'spec/support/shared_examples/models/project_ci_cd_settings_shared_examples.rb' - 'spec/support/shared_examples/models/wiki_shared_examples.rb' - 'spec/support/shared_examples/path_extraction_shared_examples.rb' diff --git a/spec/graphql/mutations/alert_management/update_alert_status_spec.rb b/spec/graphql/mutations/alert_management/update_alert_status_spec.rb index fb11ec7065b0d6c89f138c8a689caa07c976d4d2..8e1b2d9011788600492f9c0a598c22424f24e779 100644 --- a/spec/graphql/mutations/alert_management/update_alert_status_spec.rb +++ b/spec/graphql/mutations/alert_management/update_alert_status_spec.rb @@ -52,7 +52,7 @@ allow(alert).to receive(:save).and_return(false) allow(alert).to receive(:errors).and_return( - double(full_messages: %w(foo bar), :[] => nil) + double(full_messages: %w[foo bar], :[] => nil) ) expect(resolve).to eq( alert: alert, diff --git a/spec/graphql/mutations/ci/runner/update_spec.rb b/spec/graphql/mutations/ci/runner/update_spec.rb index 50351321be83fc92dd74a1902d477b6648e14ab4..02bb7ee2170c886049cebf420e2331f35a05d274 100644 --- a/spec/graphql/mutations/ci/runner/update_spec.rb +++ b/spec/graphql/mutations/ci/runner/update_spec.rb @@ -69,7 +69,7 @@ active: false, locked: true, run_untagged: false, - tag_list: %w(tag1 tag2) + tag_list: %w[tag1 tag2] } end diff --git a/spec/graphql/mutations/commits/create_spec.rb b/spec/graphql/mutations/commits/create_spec.rb index 2c452410ccae49af0880223fe7dc4c7a7da69ffa..8cfd27485e6bf1db353fda0a26345ecbef87c62b 100644 --- a/spec/graphql/mutations/commits/create_spec.rb +++ b/spec/graphql/mutations/commits/create_spec.rb @@ -67,7 +67,7 @@ context 'when service successfully creates a new commit' do it "returns the ETag path for the commit's pipeline" do commit_pipeline_path = subject[:commit_pipeline_path] - expect(commit_pipeline_path).to match(%r(pipelines/sha/\w+)) + expect(commit_pipeline_path).to match(%r{pipelines/sha/\w+}) end it 'returns the content of the commit' do diff --git a/spec/graphql/resolvers/board_lists_resolver_spec.rb b/spec/graphql/resolvers/board_lists_resolver_spec.rb index 1de59c5f507adc6717d803a5f840eb3bcf4c4b3c..2a794c4d1e398b49c41e5c5b2ba782f60f26310c 100644 --- a/spec/graphql/resolvers/board_lists_resolver_spec.rb +++ b/spec/graphql/resolvers/board_lists_resolver_spec.rb @@ -41,7 +41,7 @@ lists = resolve_board_lists expect(lists.count).to eq 3 - expect(lists.map(&:list_type)).to eq %w(backlog label closed) + expect(lists.map(&:list_type)).to eq %w[backlog label closed] end context 'when another user has list preferences' do diff --git a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb index 3ed3fe76267077e09bd0f273d654ef7e7cc05fd0..95e252472338e30541c886a0ea68b5a3d1900b33 100644 --- a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb +++ b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb @@ -25,7 +25,7 @@ subject { resolver.map(&:name) } before do - stub_container_registry_tags(repository: repository.path, tags: %w(aaa bab bbb ccc 123), with_manifest: false) + stub_container_registry_tags(repository: repository.path, tags: %w[aaa bab bbb ccc 123], with_manifest: false) end context 'without sort' do @@ -37,19 +37,19 @@ context "name_asc" do let(:args) { { sort: :name_asc } } - it { is_expected.to eq(%w(123 aaa bab bbb ccc)) } + it { is_expected.to eq(%w[123 aaa bab bbb ccc]) } end context "name_desc" do let(:args) { { sort: :name_desc } } - it { is_expected.to eq(%w(ccc bbb bab aaa 123)) } + it { is_expected.to eq(%w[ccc bbb bab aaa 123]) } end context 'filter by name' do let(:args) { { sort: :name_desc, name: 'b' } } - it { is_expected.to eq(%w(bbb bab)) } + it { is_expected.to eq(%w[bbb bab]) } end end end diff --git a/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb b/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb index 6af2f56cef47e2cdee80a958ee0a8af1d0f1728d..b2d5e0b74055f46397957997e3fdce235c9f772b 100644 --- a/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb +++ b/spec/graphql/resolvers/projects/jira_projects_resolver_spec.rb @@ -60,9 +60,9 @@ project_ids = jira_projects.map(&:id) expect(jira_projects.size).to eq 2 - expect(project_keys).to eq(%w(EX ABC)) - expect(project_names).to eq(%w(Example Alphabetical)) - expect(project_ids).to eq(%w(10000 10001)) + expect(project_keys).to eq(%w[EX ABC]) + expect(project_names).to eq(%w[Example Alphabetical]) + expect(project_ids).to eq(%w[10000 10001]) expect(resolver.max_page_size).to eq(2) end @@ -75,9 +75,9 @@ project_ids = jira_projects.map(&:id) expect(jira_projects.size).to eq 1 - expect(project_keys).to eq(%w(ABC)) - expect(project_names).to eq(%w(Alphabetical)) - expect(project_ids).to eq(%w(10001)) + expect(project_keys).to eq(%w[ABC]) + expect(project_names).to eq(%w[Alphabetical]) + expect(project_ids).to eq(%w[10001]) expect(resolver.max_page_size).to eq(1) end end diff --git a/spec/graphql/resolvers/projects_resolver_spec.rb b/spec/graphql/resolvers/projects_resolver_spec.rb index a01404e147bb72b28dde21d729f433ee90eec175..058d46a5e86c4002b1274b0b4ea680e267b295b0 100644 --- a/spec/graphql/resolvers/projects_resolver_spec.rb +++ b/spec/graphql/resolvers/projects_resolver_spec.rb @@ -10,7 +10,7 @@ let_it_be(:group) { create(:group, name: 'public-group') } let_it_be(:private_group) { create(:group, name: 'private-group') } - let_it_be(:project) { create(:project, :public, topic_list: %w(ruby javascript)) } + let_it_be(:project) { create(:project, :public, topic_list: %w[ruby javascript]) } let_it_be(:other_project) { create(:project, :public) } let_it_be(:group_project) { create(:project, :public, group: group) } let_it_be(:private_project) { create(:project, :private) } @@ -68,7 +68,7 @@ end context 'when topics filter is provided' do - let(:filters) { { topics: %w(ruby) } } + let(:filters) { { topics: %w[ruby] } } it 'returns matching project' do is_expected.to contain_exactly(project) @@ -148,7 +148,7 @@ end context 'when topics filter is provided' do - let(:filters) { { topics: %w(ruby) } } + let(:filters) { { topics: %w[ruby] } } it 'returns matching project' do is_expected.to contain_exactly(project) diff --git a/spec/graphql/types/boards/board_issue_input_type_spec.rb b/spec/graphql/types/boards/board_issue_input_type_spec.rb index ed2872c35980bf0bfc70b79992d63257a5774b18..dccd9f1c16c8e568faeba183dc6eebcd19679f74 100644 --- a/spec/graphql/types/boards/board_issue_input_type_spec.rb +++ b/spec/graphql/types/boards/board_issue_input_type_spec.rb @@ -6,8 +6,8 @@ it { expect(described_class.graphql_name).to eq('BoardIssueInput') } it 'has specific fields' do - allowed_args = %w(labelName milestoneTitle assigneeUsername authorUsername - releaseTag myReactionEmoji not search assigneeWildcardId confidential) + allowed_args = %w[labelName milestoneTitle assigneeUsername authorUsername + releaseTag myReactionEmoji not search assigneeWildcardId confidential] expect(described_class.arguments.keys).to include(*allowed_args) expect(described_class.arguments['not'].type).to eq(Types::Boards::NegatedBoardIssueInputType) diff --git a/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb b/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb index f536d91aeda1a4da73c48bb7c26fb9960c773160..15960407a6fb723adfaebcf7de1b0314db726ed7 100644 --- a/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb +++ b/spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb @@ -6,6 +6,6 @@ it { expect(described_class.graphql_name).to eq('DesignCollectionCopyState') } it 'exposes the correct event states' do - expect(described_class.values.keys).to match_array(%w(READY IN_PROGRESS ERROR)) + expect(described_class.values.keys).to match_array(%w[READY IN_PROGRESS ERROR]) end end diff --git a/spec/graphql/types/issue_type_spec.rb b/spec/graphql/types/issue_type_spec.rb index d4d0eff9adb23bc1c18add37ef7c337474bd1806..f6d461d6a5ff519c5c29bca82bf4bd55a45825af 100644 --- a/spec/graphql/types/issue_type_spec.rb +++ b/spec/graphql/types/issue_type_spec.rb @@ -32,7 +32,7 @@ let_it_be(:now) { Time.now.change(usec: 0) } let_it_be(:issues) { create_list(:issue, 10, project: project, created_at: now) } - let(:count_path) { %w(data project issues count) } + let(:count_path) { %w[data project issues count] } let(:page_size) { 3 } let(:query) do <<~GRAPHQL @@ -81,8 +81,8 @@ end context 'count' do - let(:end_cursor) { %w(data project issues pageInfo endCursor) } - let(:issues_edges) { %w(data project issues edges) } + let(:end_cursor) { %w[data project issues pageInfo endCursor] } + let(:issues_edges) { %w[data project issues edges] } it 'returns total count' do expect(subject.dig(*count_path)).to eq(issues.count) diff --git a/spec/helpers/appearances_helper_spec.rb b/spec/helpers/appearances_helper_spec.rb index 352a90d5a4892c07bb1995fc1d7bd3754de5565e..376db6412e84dfdb86179fcd424aff38fbe9e0ec 100644 --- a/spec/helpers/appearances_helper_spec.rb +++ b/spec/helpers/appearances_helper_spec.rb @@ -152,7 +152,7 @@ let!(:appearance) { create(:appearance, :with_logo) } it 'returns a path' do - expect(helper.brand_image).to match(%r(img .* data-src="/uploads/-/system/appearance/.*png)) + expect(helper.brand_image).to match(%r{img .* data-src="/uploads/-/system/appearance/.*png}) end context 'when there is no associated upload' do @@ -163,14 +163,14 @@ end it 'falls back to using the original path' do - expect(helper.brand_image).to match(%r(img .* data-src="/uploads/-/system/appearance/.*png)) + expect(helper.brand_image).to match(%r{img .* data-src="/uploads/-/system/appearance/.*png}) end end end context 'when there is no logo' do it 'returns path of GitLab logo' do - expect(helper.brand_image).to match(%r(img .* data-src="#{gitlab_logo})) + expect(helper.brand_image).to match(%r{img .* data-src="#{gitlab_logo}}) end end @@ -178,13 +178,13 @@ let!(:appearance) { create(:appearance, title: 'My title') } it 'returns the title' do - expect(helper.brand_image).to match(%r(img alt="My title")) + expect(helper.brand_image).to match(%r{img alt="My title"}) end end context 'when there is no title' do it 'returns the default title' do - expect(helper.brand_image).to match(%r(img alt="GitLab)) + expect(helper.brand_image).to match(%r{img alt="GitLab}) end end end @@ -194,7 +194,7 @@ let!(:appearance) { create(:appearance, :with_logo) } it 'returns path of custom logo' do - expect(helper.brand_image_path).to match(%r(/uploads/-/system/appearance/.*/dk.png)) + expect(helper.brand_image_path).to match(%r{/uploads/-/system/appearance/.*/dk.png}) end end diff --git a/spec/helpers/application_settings_helper_spec.rb b/spec/helpers/application_settings_helper_spec.rb index 9d591164547429798570fc4247e127d72d3c282c..5dc75a60a6e307d0da5fc6c6058b3dc0b0171148 100644 --- a/spec/helpers/application_settings_helper_spec.rb +++ b/spec/helpers/application_settings_helper_spec.rb @@ -47,7 +47,7 @@ describe '.visible_attributes' do it 'contains tracking parameters' do - expect(helper.visible_attributes).to include(*%i(snowplow_collector_hostname snowplow_cookie_domain snowplow_enabled snowplow_app_id)) + expect(helper.visible_attributes).to include(*%i[snowplow_collector_hostname snowplow_cookie_domain snowplow_enabled snowplow_app_id]) end it 'contains :deactivate_dormant_users' do @@ -60,16 +60,16 @@ it 'contains rate limit parameters' do expect(helper.visible_attributes).to include( - *%i( + *%i[ issues_create_limit notes_create_limit project_export_limit project_download_export_limit project_export_limit project_import_limit raw_blob_request_limit group_export_limit group_download_export_limit group_import_limit users_get_by_id_limit search_rate_limit search_rate_limit_unauthenticated - )) + ]) end it 'contains GitLab for Slack app parameters' do - params = %i(slack_app_enabled slack_app_id slack_app_secret slack_app_signing_secret slack_app_verification_token) + params = %i[slack_app_enabled slack_app_id slack_app_secret slack_app_signing_secret slack_app_verification_token] expect(helper.visible_attributes).to include(*params) end @@ -306,7 +306,7 @@ describe '#sidekiq_job_limiter_modes_for_select' do subject { helper.sidekiq_job_limiter_modes_for_select } - it { is_expected.to eq([%w(Track track), %w(Compress compress)]) } + it { is_expected.to eq([%w[Track track], %w[Compress compress]]) } end describe '#instance_clusters_enabled?', :request_store do diff --git a/spec/helpers/auth_helper_spec.rb b/spec/helpers/auth_helper_spec.rb index 580bcb5dcd0f382aedb4962df9fb7bdda05fc632..5684f1cc99dfc4a0c1b7bf064e28ce42514d5c2f 100644 --- a/spec/helpers/auth_helper_spec.rb +++ b/spec/helpers/auth_helper_spec.rb @@ -35,12 +35,12 @@ describe "form_based_providers" do it 'includes LDAP providers' do allow(helper).to receive(:auth_providers) { [:twitter, :ldapmain] } - expect(helper.form_based_providers).to eq %i(ldapmain) + expect(helper.form_based_providers).to eq %i[ldapmain] end it 'includes crowd provider' do allow(helper).to receive(:auth_providers) { [:twitter, :crowd] } - expect(helper.form_based_providers).to eq %i(crowd) + expect(helper.form_based_providers).to eq %i[crowd] end end @@ -101,15 +101,15 @@ describe 'popular_enabled_button_based_providers' do it 'returns the intersection set of popular & enabled providers', :aggregate_failures do - allow(helper).to receive(:enabled_button_based_providers) { %w(twitter github google_oauth2) } + allow(helper).to receive(:enabled_button_based_providers) { %w[twitter github google_oauth2] } - expect(helper.popular_enabled_button_based_providers).to eq(%w(github google_oauth2)) + expect(helper.popular_enabled_button_based_providers).to eq(%w[github google_oauth2]) - allow(helper).to receive(:enabled_button_based_providers) { %w(google_oauth2 bitbucket) } + allow(helper).to receive(:enabled_button_based_providers) { %w[google_oauth2 bitbucket] } - expect(helper.popular_enabled_button_based_providers).to eq(%w(google_oauth2)) + expect(helper.popular_enabled_button_based_providers).to eq(%w[google_oauth2]) - allow(helper).to receive(:enabled_button_based_providers) { %w(bitbucket) } + allow(helper).to receive(:enabled_button_based_providers) { %w[bitbucket] } expect(helper.popular_enabled_button_based_providers).to be_empty end @@ -129,7 +129,7 @@ context 'all the button based providers are disabled via application_setting' do it 'returns false' do stub_application_setting( - disabled_oauth_sign_in_sources: %w(github twitter) + disabled_oauth_sign_in_sources: %w[github twitter] ) expect(helper.button_based_providers_enabled?).to be false diff --git a/spec/helpers/breadcrumbs_helper_spec.rb b/spec/helpers/breadcrumbs_helper_spec.rb index 8e2a684656b5ed684607ce2ec9972d7fbbd42000..43a30f59e50222564815de37ecd7c0d7b131a2c2 100644 --- a/spec/helpers/breadcrumbs_helper_spec.rb +++ b/spec/helpers/breadcrumbs_helper_spec.rb @@ -54,8 +54,8 @@ describe '#schema_breadcrumb_json' do let(:elements) do [ - %w(element1 http://test.host/link1), - %w(element2 http://test.host/link2) + %w[element1 http://test.host/link1], + %w[element2 http://test.host/link2] ] end @@ -89,8 +89,8 @@ context 'when extra breadcrumb element is added' do let(:extra_elements) do [ - %w(extra_element1 http://test.host/extra_link1), - %w(extra_element2 http://test.host/extra_link2) + %w[extra_element1 http://test.host/extra_link1], + %w[extra_element2 http://test.host/extra_link2] ] end diff --git a/spec/helpers/ci/pipelines_helper_spec.rb b/spec/helpers/ci/pipelines_helper_spec.rb index 00bc38dbd94544ec6c3a6d1147181527c365a3b2..100ca3fb30c13a36fffe3d15a5b6c25228f702d4 100644 --- a/spec/helpers/ci/pipelines_helper_spec.rb +++ b/spec/helpers/ci/pipelines_helper_spec.rb @@ -110,7 +110,7 @@ before do allow(helper).to receive(:current_user).and_return(user) project.add_developer(user) - create(:project_setting, project: project, target_platforms: %w(ios)) + create(:project_setting, project: project, target_platforms: %w[ios]) end describe 'the `registration_token` attribute' do diff --git a/spec/helpers/clusters_helper_spec.rb b/spec/helpers/clusters_helper_spec.rb index a9fbdfbe3ca748e8ff145dbbb7cda4f5de6c0b2a..f3d6b5bdda666d54678cfbe0101682e9f68ed892 100644 --- a/spec/helpers/clusters_helper_spec.rb +++ b/spec/helpers/clusters_helper_spec.rb @@ -48,9 +48,9 @@ end it 'generates svg image data', :aggregate_failures do - expect(subject.dig(:img_tags, :aws, :path)).to match(%r(/illustrations/logos/amazon_eks|svg)) - expect(subject.dig(:img_tags, :default, :path)).to match(%r(/illustrations/logos/kubernetes|svg)) - expect(subject.dig(:img_tags, :gcp, :path)).to match(%r(/illustrations/logos/google_gke|svg)) + expect(subject.dig(:img_tags, :aws, :path)).to match(%r{/illustrations/logos/amazon_eks|svg}) + expect(subject.dig(:img_tags, :default, :path)).to match(%r{/illustrations/logos/kubernetes|svg}) + expect(subject.dig(:img_tags, :gcp, :path)).to match(%r{/illustrations/logos/google_gke|svg}) expect(subject.dig(:img_tags, :aws, :text)).to eq('Amazon EKS') expect(subject.dig(:img_tags, :default, :text)).to eq('Kubernetes Cluster') @@ -62,8 +62,8 @@ end it 'displays empty image path' do - expect(subject[:clusters_empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-clusters|svg)) - expect(subject[:empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-agents|svg)) + expect(subject[:clusters_empty_state_image]).to match(%r{/illustrations/empty-state/empty-state-clusters|svg}) + expect(subject[:empty_state_image]).to match(%r{/illustrations/empty-state/empty-state-agents|svg}) end it 'displays add cluster using certificate path' do diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb index 927930675150066fe5dfbc29fcbe6684cc215bf3..17ec18d702c0361f5c55e4fe7c9d4ab093012636 100644 --- a/spec/helpers/diff_helper_spec.rb +++ b/spec/helpers/diff_helper_spec.rb @@ -196,26 +196,26 @@ end describe "#mark_inline_diffs" do - let(:old_line) { %{abc 'def'} } - let(:new_line) { %{abc "def"} } + let(:old_line) { %(abc 'def') } + let(:new_line) { %(abc "def") } it "returns strings with marked inline diffs" do marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line) - expect(marked_old_line).to eq(%q{abc <span class="idiff left deletion">'</span>def<span class="idiff right deletion">'</span>}) + expect(marked_old_line).to eq(%q(abc <span class="idiff left deletion">'</span>def<span class="idiff right deletion">'</span>)) expect(marked_old_line).to be_html_safe - expect(marked_new_line).to eq(%q{abc <span class="idiff left addition">"</span>def<span class="idiff right addition">"</span>}) + expect(marked_new_line).to eq(%q(abc <span class="idiff left addition">"</span>def<span class="idiff right addition">"</span>)) expect(marked_new_line).to be_html_safe end context 'when given HTML' do it 'sanitizes it' do - old_line = %{test.txt} + old_line = %(test.txt) new_line = %{<img src=x onerror=alert(document.domain)>} marked_old_line, marked_new_line = mark_inline_diffs(old_line, new_line) - expect(marked_old_line).to eq(%q{<span class="idiff left right deletion">test.txt</span>}) + expect(marked_old_line).to eq(%q(<span class="idiff left right deletion">test.txt</span>)) expect(marked_old_line).to be_html_safe expect(marked_new_line).to eq(%q{<span class="idiff left right addition"><img src=x onerror=alert(document.domain)></span>}) expect(marked_new_line).to be_html_safe diff --git a/spec/helpers/emails_helper_spec.rb b/spec/helpers/emails_helper_spec.rb index dbc6bd2eb28ad9eb6451bd45c2c22f5d1a8ea0a9..ee623cea66407939808a3dcda1de08e3bb93525d 100644 --- a/spec/helpers/emails_helper_spec.rb +++ b/spec/helpers/emails_helper_spec.rb @@ -237,7 +237,7 @@ def validate_time_string(time_limit, expected_string) it 'returns the brand header logo' do expect(header_logo).to eq( - %{<img style="height: 50px" src="/uploads/-/system/appearance/header_logo/#{appearance.id}/dk.png" />} + %(<img style="height: 50px" src="/uploads/-/system/appearance/header_logo/#{appearance.id}/dk.png" />) ) end @@ -326,8 +326,8 @@ def validate_time_string(time_limit, expected_string) create :appearance, header_message: 'Foo', footer_message: 'Bar', email_header_and_footer_enabled: true aggregate_failures do - expect(html_header_message).to eq(%{<div class="header-message" style=""><p>Foo</p></div>}) - expect(html_footer_message).to eq(%{<div class="footer-message" style=""><p>Bar</p></div>}) + expect(html_header_message).to eq(%(<div class="header-message" style=""><p>Foo</p></div>)) + expect(html_footer_message).to eq(%(<div class="footer-message" style=""><p>Bar</p></div>)) expect(text_header_message).to eq('Foo') expect(text_footer_message).to eq('Bar') end diff --git a/spec/helpers/issuables_description_templates_helper_spec.rb b/spec/helpers/issuables_description_templates_helper_spec.rb index b32a99fe9890305a0fccb7605c146e545047f671..4634ff83469a25a0e29f8876db85b0b5c9489ad4 100644 --- a/spec/helpers/issuables_description_templates_helper_spec.rb +++ b/spec/helpers/issuables_description_templates_helper_spec.rb @@ -85,7 +85,7 @@ end describe '#selected_template_name' do - let(:template_names) { %w(another_issue_template custom_issue_template) } + let(:template_names) { %w[another_issue_template custom_issue_template] } context 'when no issuable_template parameter is provided' do it 'does not select a template' do @@ -118,7 +118,7 @@ describe '#default_template_name' do context 'when a default template is available' do - let(:template_names) { %w(another_issue_template deFault) } + let(:template_names) { %w[another_issue_template deFault] } it 'returns the default template' do issue = build(:issue) @@ -140,7 +140,7 @@ end context 'when there is no default template' do - let(:template_names) { %w(another_issue_template) } + let(:template_names) { %w[another_issue_template] } it 'returns nil' do expect(helper.default_template_name(template_names, build(:issue))).to be_nil diff --git a/spec/helpers/issues_helper_spec.rb b/spec/helpers/issues_helper_spec.rb index 72fa264698d77b03774c05bc46d979cbe5c9fa32..62d94b59c2aedf6963d1fb6d3cb571ecdedc3743 100644 --- a/spec/helpers/issues_helper_spec.rb +++ b/spec/helpers/issues_helper_spec.rb @@ -78,7 +78,7 @@ describe 'awards_sort' do it 'sorts a hash so thumbsup and thumbsdown are always on top' do data = { 'thumbsdown' => 'some value', 'lifter' => 'some value', 'thumbsup' => 'some value' } - expect(awards_sort(data).keys).to eq(%w(thumbsup thumbsdown lifter)) + expect(awards_sort(data).keys).to eq(%w[thumbsup thumbsdown lifter]) end end diff --git a/spec/helpers/nav_helper_spec.rb b/spec/helpers/nav_helper_spec.rb index 950d8b77d014eb08b8110ebaeea67c63bf2048c5..12ab7ca93c07fca577e87e646f5d70d2299c4b7b 100644 --- a/spec/helpers/nav_helper_spec.rb +++ b/spec/helpers/nav_helper_spec.rb @@ -115,13 +115,13 @@ describe '#page_has_markdown?' do using RSpec::Parameterized::TableSyntax - where path: %w( + where path: %w[ projects/merge_requests#show projects/merge_requests/conflicts#show issues#show milestones#show issues#designs - ) + ] with_them do before do diff --git a/spec/helpers/page_layout_helper_spec.rb b/spec/helpers/page_layout_helper_spec.rb index 43500d985917fdba230891dc4611d024ffe6c169..a4f10933be611e3f2191a5e333bf68cb4c3b5104 100644 --- a/spec/helpers/page_layout_helper_spec.rb +++ b/spec/helpers/page_layout_helper_spec.rb @@ -55,7 +55,7 @@ expect(helper.page_image).to match_asset_path 'assets/twitter_card.jpg' end - %w(project user group).each do |type| + %w[project user group].each do |type| context "with @#{type} assigned" do let(:object) { build(type, trait) } let(:trait) { :with_avatar } @@ -116,11 +116,11 @@ it 'escapes content' do allow(helper).to receive(:page_card_attributes) - .and_return(foo: %q{foo" http-equiv="refresh}.html_safe) + .and_return(foo: %q(foo" http-equiv="refresh).html_safe) tags = helper.page_card_meta_tags - expect(tags).to include(%q{content="foo" http-equiv="refresh"}) + expect(tags).to include(%q(content="foo" http-equiv="refresh")) end end diff --git a/spec/helpers/profiles_helper_spec.rb b/spec/helpers/profiles_helper_spec.rb index 15ca5f61b516620c37ee208bddd03dbd5057e4ef..ece6574ee38950cde5502262b96135b5ca394856 100644 --- a/spec/helpers/profiles_helper_spec.rb +++ b/spec/helpers/profiles_helper_spec.rb @@ -106,9 +106,9 @@ using RSpec::Parameterized::TableSyntax where(:stacking, :breakpoint, :expected) do - nil | nil | %w(gl-mb-3 gl-display-inline-block middle-dot-divider) - true | nil | %w(gl-mb-3 middle-dot-divider-sm gl-display-block gl-sm-display-inline-block) - nil | :sm | %w(gl-mb-3 gl-display-inline-block middle-dot-divider-sm) + nil | nil | %w[gl-mb-3 gl-display-inline-block middle-dot-divider] + true | nil | %w[gl-mb-3 middle-dot-divider-sm gl-display-block gl-sm-display-inline-block] + nil | :sm | %w[gl-mb-3 gl-display-inline-block middle-dot-divider-sm] end with_them do diff --git a/spec/helpers/releases_helper_spec.rb b/spec/helpers/releases_helper_spec.rb index 5a9deb5c63b85978cdfd5e5873e8be3361b77a71..daf034edbb1da0200031ca1e6870cacd9f68e9f6 100644 --- a/spec/helpers/releases_helper_spec.rb +++ b/spec/helpers/releases_helper_spec.rb @@ -59,7 +59,7 @@ describe '#data_for_edit_release_page' do it 'has the needed data to display the "edit release" page' do - keys = %i(project_id + keys = %i[project_id group_id group_milestones_available project_path @@ -72,7 +72,7 @@ new_milestone_path upcoming_release_docs_path edit_release_docs_path - delete_release_docs_path) + delete_release_docs_path] expect(helper.data_for_edit_release_page.keys).to match_array(keys) end @@ -80,7 +80,7 @@ describe '#data_for_new_release_page' do it 'has the needed data to display the "new release" page' do - keys = %i(project_id + keys = %i[project_id group_id group_milestones_available project_path @@ -93,7 +93,7 @@ new_milestone_path default_branch upcoming_release_docs_path - edit_release_docs_path) + edit_release_docs_path] expect(helper.data_for_new_release_page.keys).to match_array(keys) end @@ -101,9 +101,9 @@ describe '#data_for_show_page' do it 'has the needed data to display the individual "release" page' do - keys = %i(project_id + keys = %i[project_id project_path - tag_name) + tag_name] expect(helper.data_for_show_page.keys).to match_array(keys) end diff --git a/spec/helpers/tracking_helper_spec.rb b/spec/helpers/tracking_helper_spec.rb index 81121275c928039d9c3da8415e910a3c97863dde..9d3f2d07cbe46296d6e5b892d89e5a8b8564da21 100644 --- a/spec/helpers/tracking_helper_spec.rb +++ b/spec/helpers/tracking_helper_spec.rb @@ -6,7 +6,7 @@ describe '#tracking_attrs' do using RSpec::Parameterized::TableSyntax - let(:input) { %w(a b c) } + let(:input) { %w[a b c] } let(:result) { { data: { track_label: 'a', track_action: 'b', track_property: 'c' } } } before do diff --git a/spec/initializers/direct_upload_support_spec.rb b/spec/initializers/direct_upload_support_spec.rb index 68dd12fdb6e6d5adcfb9a3da7fbdc167359d0ac2..29d19c8397c1662fa21a27988d25028d247d1ff5 100644 --- a/spec/initializers/direct_upload_support_spec.rb +++ b/spec/initializers/direct_upload_support_spec.rb @@ -8,7 +8,7 @@ end where(:config_name) do - %w(artifacts lfs uploads) + %w[artifacts lfs uploads] end with_them do diff --git a/spec/initializers/enumerator_next_patch_spec.rb b/spec/initializers/enumerator_next_patch_spec.rb index 99e73af5e86675eaf66430ba76cfcad2a01813c0..bf8ab823e53a8aea26687507349d8fcd533d8c95 100644 --- a/spec/initializers/enumerator_next_patch_spec.rb +++ b/spec/initializers/enumerator_next_patch_spec.rb @@ -33,15 +33,15 @@ def make_regexp(method_name) end def have_been_raised_by_next_and_not_fixed_up - contain_unique_method_calls_in_order %w(call_enum_method) + contain_unique_method_calls_in_order %w[call_enum_method] end def have_been_raised_by_enum_object_and_fixed_up - contain_unique_method_calls_in_order %w(make_error call_enum_method) + contain_unique_method_calls_in_order %w[make_error call_enum_method] end def have_been_raised_by_nested_next_and_fixed_up - contain_unique_method_calls_in_order %w(call_nested_next call_enum_method) + contain_unique_method_calls_in_order %w[call_nested_next call_enum_method] end methods = [ diff --git a/spec/initializers/rack_multipart_patch_spec.rb b/spec/initializers/rack_multipart_patch_spec.rb index 862fdc7901bc89b04c4a2fdc05a397604b464eeb..4b46da732363f6c06acb9cb4ec155091001845c6 100644 --- a/spec/initializers/rack_multipart_patch_spec.rb +++ b/spec/initializers/rack_multipart_patch_spec.rb @@ -37,7 +37,7 @@ def multipart_fixture(name, length, boundary = "AaB03x") expect(described_class).not_to receive(:log_multipart_warning) params = described_class.parse_multipart(env) - expect(params.keys).to include(*%w(reply fileupload)) + expect(params.keys).to include(*%w[reply fileupload]) end end @@ -56,7 +56,7 @@ def multipart_fixture(name, length, boundary = "AaB03x") }) params = described_class.parse_multipart(env) - expect(params.keys).to include(*%w(reply fileupload)) + expect(params.keys).to include(*%w[reply fileupload]) end end diff --git a/spec/lib/api/ci/helpers/runner_helpers_spec.rb b/spec/lib/api/ci/helpers/runner_helpers_spec.rb index c36c8d23e88ed498a666b6825a56bc66f5b8fd15..e05be65bf19670085146d516a3e736fb36a115b3 100644 --- a/spec/lib/api/ci/helpers/runner_helpers_spec.rb +++ b/spec/lib/api/ci/helpers/runner_helpers_spec.rb @@ -62,7 +62,7 @@ def ip_address it 'extracts the runner details', :aggregate_failures do expect(details.keys).to match_array( - %w(system_id name version revision platform architecture executor config ip_address) + %w[system_id name version revision platform architecture executor config ip_address] ) expect(details['system_id']).to eq(system_id) expect(details['name']).to eq(name) diff --git a/spec/lib/api/entities/user_spec.rb b/spec/lib/api/entities/user_spec.rb index 063a11918bae789e1dc7a4293ee525d89433af4e..c5a98e6e42e23df771eef9211e5f522f612b613a 100644 --- a/spec/lib/api/entities/user_spec.rb +++ b/spec/lib/api/entities/user_spec.rb @@ -29,7 +29,7 @@ allow(Ability).to receive(:allowed?).with(current_user, :read_user_profile, user).and_return(can_read_user_profile) end - %i(followers following is_followed).each do |relationship| + %i[followers following is_followed].each do |relationship| shared_examples 'does not expose relationship' do it "does not expose #{relationship}" do expect(subject).not_to include(relationship) diff --git a/spec/lib/api/helpers/common_helpers_spec.rb b/spec/lib/api/helpers/common_helpers_spec.rb index 5162d2f10001bb236e34c4d7e54ca7489dfc0609..04a1837dec9097f740ced742b6a8843791c28917 100644 --- a/spec/lib/api/helpers/common_helpers_spec.rb +++ b/spec/lib/api/helpers/common_helpers_spec.rb @@ -44,7 +44,7 @@ def app get '/test?array=&array_of_strings=test,me&array_of_ints=1,2' expect(json_response['array']).to eq([]) - expect(json_response['array_of_strings']).to eq(%w(test me)) + expect(json_response['array_of_strings']).to eq(%w[test me]) expect(json_response['array_of_ints']).to eq([1, 2]) end end diff --git a/spec/lib/backup/files_spec.rb b/spec/lib/backup/files_spec.rb index 9cb57baba25c9a935058ba690780b298c9df647a..48c89e06dfa84f362e07abb96a2bd7ba96bb5369 100644 --- a/spec/lib/backup/files_spec.rb +++ b/spec/lib/backup/files_spec.rb @@ -68,7 +68,7 @@ it 'calls tar command with unlink' do expect(subject).to receive(:tar).and_return('blabla-tar') - expect(subject).to receive(:run_pipeline!).with([%w(gzip -cd), %w(blabla-tar --unlink-first --recursive-unlink -C /var/gitlab-registry -xf -)], any_args) + expect(subject).to receive(:run_pipeline!).with([%w[gzip -cd], %w[blabla-tar --unlink-first --recursive-unlink -C /var/gitlab-registry -xf -]], any_args) expect(subject).to receive(:pipeline_succeeded?).and_return(true) subject.restore('registry.tar.gz', 'backup_id') end @@ -124,7 +124,7 @@ it 'excludes tmp dirs from archive' do expect(subject).to receive(:tar).and_return('blabla-tar') - expect(subject).to receive(:run_pipeline!).with([%w(blabla-tar --exclude=lost+found --exclude=./@pages.tmp -C /var/gitlab-pages -cf - .), 'gzip -c -1'], any_args) + expect(subject).to receive(:run_pipeline!).with([%w[blabla-tar --exclude=lost+found --exclude=./@pages.tmp -C /var/gitlab-pages -cf - .], 'gzip -c -1'], any_args) subject.dump('registry.tar.gz', 'backup_id') end @@ -146,7 +146,7 @@ it 'excludes tmp dirs from rsync' do expect(Gitlab::Popen).to receive(:popen) - .with(%w(rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup)) + .with(%w[rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup]) .and_return(['', 0]) subject.dump('registry.tar.gz', 'backup_id') @@ -154,7 +154,7 @@ it 'retries if rsync fails due to vanishing files' do expect(Gitlab::Popen).to receive(:popen) - .with(%w(rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup)) + .with(%w[rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup]) .and_return(['rsync failed', 24], ['', 0]) expect do @@ -164,7 +164,7 @@ it 'raises an error and outputs an error message if rsync failed' do allow(Gitlab::Popen).to receive(:popen) - .with(%w(rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup)) + .with(%w[rsync -a --delete --exclude=lost+found --exclude=/gitlab-pages/@pages.tmp /var/gitlab-pages /var/gitlab-backup]) .and_return(['rsync failed', 1]) expect do diff --git a/spec/lib/backup/manager_spec.rb b/spec/lib/backup/manager_spec.rb index 6061441d5f51949e1dccf3234f904b36ebfb6d71..8f85cd9d8b346539e3ae3eb783145f3982348884 100644 --- a/spec/lib/backup/manager_spec.rb +++ b/spec/lib/backup/manager_spec.rb @@ -156,7 +156,7 @@ describe '#create' do let(:incremental_env) { 'false' } - let(:expected_backup_contents) { %w{backup_information.yml task1.tar.gz task2.tar.gz} } + let(:expected_backup_contents) { %w[backup_information.yml task1.tar.gz task2.tar.gz] } let(:backup_time) { Time.zone.parse('2019-1-1') } let(:backup_id) { "1546300800_2019_01_01_#{Gitlab::VERSION}" } let(:full_backup_id) { backup_id } @@ -223,7 +223,7 @@ end context 'when SKIP env is set' do - let(:expected_backup_contents) { %w{backup_information.yml task1.tar.gz} } + let(:expected_backup_contents) { %w[backup_information.yml task1.tar.gz] } before do stub_env('SKIP', 'task2') @@ -237,7 +237,7 @@ end context 'when the destination is optional' do - let(:expected_backup_contents) { %w{backup_information.yml task1.tar.gz} } + let(:expected_backup_contents) { %w[backup_information.yml task1.tar.gz] } let(:definitions) do { 'task1' => Backup::Manager::TaskDefinition.new(task: task1, destination_path: 'task1.tar.gz'), @@ -1015,7 +1015,7 @@ end context 'when BACKUP variable is set to a correct file' do - let(:tar_cmdline) { %w{tar -xf 1451606400_2016_01_01_1.2.3_gitlab_backup.tar} } + let(:tar_cmdline) { %w[tar -xf 1451606400_2016_01_01_1.2.3_gitlab_backup.tar] } let(:backup_id) { "1451606400_2016_01_01_1.2.3" } before do diff --git a/spec/lib/backup/repositories_spec.rb b/spec/lib/backup/repositories_spec.rb index b549f2d355d724cb71c0306b448b7739c1f24a89..ad5fb8ea84e67b420aad42698e9ae2ea39ee7dc8 100644 --- a/spec/lib/backup/repositories_spec.rb +++ b/spec/lib/backup/repositories_spec.rb @@ -85,7 +85,7 @@ end describe 'storages' do - let(:storages) { %w{default} } + let(:storages) { %w[default] } let_it_be(:project) { create(:project_with_design, :repository) } @@ -280,7 +280,7 @@ end context 'storages' do - let(:storages) { %w{default} } + let(:storages) { %w[default] } before do stub_storage_settings('test_second_storage' => { diff --git a/spec/lib/banzai/filter/asset_proxy_filter_spec.rb b/spec/lib/banzai/filter/asset_proxy_filter_spec.rb index 7a34bf13c8f8effd443316b18706d484952ec0b2..baa22e0897130edc5a31a437f5bdb0d09b1c7887 100644 --- a/spec/lib/banzai/filter/asset_proxy_filter_spec.rb +++ b/spec/lib/banzai/filter/asset_proxy_filter_spec.rb @@ -28,14 +28,14 @@ def image(path) stub_application_setting(asset_proxy_enabled: true) stub_application_setting(asset_proxy_secret_key: 'shared-secret') stub_application_setting(asset_proxy_url: 'https://assets.example.com') - stub_application_setting(asset_proxy_allowlist: %w(gitlab.com *.mydomain.com)) + stub_application_setting(asset_proxy_allowlist: %w[gitlab.com *.mydomain.com]) described_class.initialize_settings expect(Gitlab.config.asset_proxy.enabled).to be_truthy expect(Gitlab.config.asset_proxy.secret_key).to eq 'shared-secret' expect(Gitlab.config.asset_proxy.url).to eq 'https://assets.example.com' - expect(Gitlab.config.asset_proxy.allowlist).to eq %w(gitlab.com *.mydomain.com) + expect(Gitlab.config.asset_proxy.allowlist).to eq %w[gitlab.com *.mydomain.com] expect(Gitlab.config.asset_proxy.domain_regexp).to eq(/^(gitlab\.com|.*?\.mydomain\.com)$/i) end @@ -52,12 +52,12 @@ def image(path) it 'supports deprecated whitelist settings' do stub_application_setting(asset_proxy_enabled: true) - stub_application_setting(asset_proxy_whitelist: %w(foo.com bar.com)) + stub_application_setting(asset_proxy_whitelist: %w[foo.com bar.com]) stub_application_setting(asset_proxy_allowlist: []) described_class.initialize_settings - expect(Gitlab.config.asset_proxy.allowlist).to eq %w(foo.com bar.com) + expect(Gitlab.config.asset_proxy.allowlist).to eq %w[foo.com bar.com] end end @@ -66,7 +66,7 @@ def image(path) stub_asset_proxy_setting(enabled: true) stub_asset_proxy_setting(secret_key: 'shared-secret') stub_asset_proxy_setting(url: 'https://assets.example.com') - stub_asset_proxy_setting(allowlist: %W(gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host})) + stub_asset_proxy_setting(allowlist: %W[gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host}]) stub_asset_proxy_setting(domain_regexp: described_class.compile_allowlist(Gitlab.config.asset_proxy.allowlist)) @context = described_class.transform_context({}) end diff --git a/spec/lib/banzai/filter/autolink_filter_spec.rb b/spec/lib/banzai/filter/autolink_filter_spec.rb index fe642855f3b256a509aa28d83499ca2d4fd3c866..89a9099a1f43c3cf0a633c40b949370ee2c061ab 100644 --- a/spec/lib/banzai/filter/autolink_filter_spec.rb +++ b/spec/lib/banzai/filter/autolink_filter_spec.rb @@ -178,7 +178,7 @@ it 'does not double-encode HTML entities' do encoded_link = "#{link}?foo=bar&baz=quux" - expected_encoded_link = %{<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/broadcast_message_sanitization_filter_spec.rb b/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb index 3b054862a2602bb1f1e3a3e881cf9cc1583a0fee..69afddf2406e8109c688fb9de611c1d0a0ff221f 100644 --- a/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb +++ b/spec/lib/banzai/filter/broadcast_message_sanitization_filter_spec.rb @@ -14,13 +14,13 @@ subject { filter(exp).to_html } context 'allows `a` elements' do - let(:exp) { %q{<a href="/">Link</a>} } + let(:exp) { %q(<a href="/">Link</a>) } it { is_expected.to eq(exp) } end context 'allows `br` elements' do - let(:exp) { %q{Hello<br>World} } + let(:exp) { %q(Hello<br>World) } it { is_expected.to eq(exp) } end @@ -29,21 +29,21 @@ let(:allowed_style) { 'color: red; border: blue; background: green; padding: 10px; margin: 10px; text-decoration: underline;' } context 'allows specific properties' do - let(:exp) { %{<a href="#" style="#{allowed_style}">Stylish Link</a>} } + let(:exp) { %(<a href="#" style="#{allowed_style}">Stylish Link</a>) } it { is_expected.to eq(exp) } end it 'disallows other properties in `style` attribute on `a` elements' do style = [allowed_style, 'position: fixed'].join(';') - doc = filter(%{<a href="#" style="#{style}">Stylish Link</a>}) + doc = filter(%(<a href="#" style="#{style}">Stylish Link</a>)) expect(doc.at_css('a')['style']).to eq(allowed_style) end end context 'allows `class` on `a` elements' do - let(:exp) { %q{<a href="#" class="btn">Button Link</a>} } + let(:exp) { %q(<a href="#" class="btn">Button Link</a>) } it { is_expected.to eq(exp) } end diff --git a/spec/lib/banzai/filter/image_link_filter_spec.rb b/spec/lib/banzai/filter/image_link_filter_spec.rb index 6c9e798790f0a1b18e5c96b4b5d1453601137a5c..75a4c550ec9c24df205193803fcfce2d8d67936f 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 @@ let(:context) { {} } def image(path, alt: nil, data_src: nil) - alt_tag = alt ? %{alt="#{alt}"} : "" - data_src_tag = data_src ? %{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 diff --git a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb index 6ebf6c3cd1dbbc90d142725481cc74de46e5c25c..9723e9b39f1ae95aab070a0d54401645f5708a3d 100644 --- a/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/alert_reference_filter_spec.rb @@ -13,7 +13,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Alert #{reference}</#{elem}>" @@ -47,7 +47,7 @@ end it 'escapes the title attribute' do - allow(alert).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(alert).to receive(:title).and_return(%("></a>whatever<a title=")) doc = reference_filter("Alert #{reference}") expect(doc.text).to eq "Alert #{reference}" @@ -79,7 +79,7 @@ doc = reference_filter("Alert #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.details_project_alert_management_url(project, alert.iid, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb index 594a24fa279c44bd763ca24a59285bb26be5ba40..9300945a9af42f39c1110c4d344cd6ea09075f36 100644 --- a/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/commit_range_reference_filter_spec.rb @@ -16,7 +16,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Commit Range #{range.to_reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -96,7 +96,7 @@ doc = reference_filter("See #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_compare_url(project, from: commit1.id, to: commit2.id, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb index 73e3bf41ee9257cd76efcb9cf01da7635811b1c7..6e0f9eda0e25f3a455035c37700fe265d8c24ea6 100644 --- a/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/commit_reference_filter_spec.rb @@ -12,7 +12,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Commit #{commit.id}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -61,7 +61,7 @@ it 'escapes the title attribute' do allow_next_instance_of(Commit) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") @@ -93,7 +93,7 @@ doc = reference_filter("See #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_commit_url(project, reference, only_path: true) end diff --git a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb index d97067de1553a7294ca983d0eab9c1451c203621..fd03d7c0d271f10858022e2e6161fff4e576079d 100644 --- a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb @@ -77,7 +77,7 @@ end end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| context "wrapped in a <#{elem}/>" do let(:input_text) { "<#{elem}>Design #{url_for_design(design)}</#{elem}>" } diff --git a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb index 86fb7d3964d55e3fb30aef9f11bdd71c847f76f1..823f006c98a9d15642f76b854d2f418cb39c2e45 100644 --- a/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/external_issue_reference_filter_spec.rb @@ -14,7 +14,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Issue #{reference}</#{elem}>" @@ -59,7 +59,7 @@ it 'escapes the title attribute' do allow(project.external_issue_tracker).to receive(:title) - .and_return(%{"></a>whatever<a title="}) + .and_return(%("></a>whatever<a title=")) doc = filter("Issue #{reference}") expect(doc.text).to eq "Issue #{reference}" diff --git a/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb b/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb index c2f4bf6caa5bd0a4ab868476ff4f399a3ea3e97d..02be2296d5c5cca925916eca8fe43fb98292f6f0 100644 --- a/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/feature_flag_reference_filter_spec.rb @@ -13,7 +13,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Feature Flag #{reference}</#{elem}>" @@ -47,7 +47,7 @@ end it 'escapes the title attribute' do - allow(feature_flag).to receive(:name).and_return(%{"></a>whatever<a title="}) + allow(feature_flag).to receive(:name).and_return(%("></a>whatever<a title=")) doc = reference_filter("Feature Flag #{reference}") expect(doc.text).to eq "Feature Flag #{reference}" @@ -79,7 +79,7 @@ doc = reference_filter("Feature Flag #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.edit_project_feature_flag_url(project, feature_flag.iid, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb index aadd726ac40fa6ea898fbcb4888bfaf747c7dbdd..d16188e99a3253571498a5bc8f9128608f51876a 100644 --- a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb @@ -27,7 +27,7 @@ def helper expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Issue #{issue.to_reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -77,7 +77,7 @@ def helper end it 'escapes the title attribute' do - issue.update_attribute(:title, %{"></a>whatever<a title="}) + issue.update_attribute(:title, %("></a>whatever<a title=")) doc = reference_filter("Issue #{written_reference}") expect(doc.text).to eq "Issue #{reference}" @@ -128,7 +128,7 @@ def helper it 'does not escape the data-original attribute' do inner_html = 'element <code>node</code> inside' - doc = reference_filter(%{<a href="#{written_reference}">#{inner_html}</a>}) + doc = reference_filter(%(<a href="#{written_reference}">#{inner_html}</a>)) expect(doc.children.first.attr('data-original')).to eq inner_html end @@ -163,7 +163,7 @@ def helper doc = reference_filter("Issue #{written_reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq issue_path end @@ -381,7 +381,7 @@ def helper end context 'cross-project reference in link href' do - let(:reference_link) { %{<a href="#{reference}">Reference</a>} } + let(:reference_link) { %(<a href="#{reference}">Reference</a>) } let(:reference) { issue.to_reference(project) } let(:issue) { create(:issue, project: project2) } let(:project2) { create(:project, :public, namespace: namespace) } @@ -412,7 +412,7 @@ def helper end context 'cross-project URL in link href' do - let(:reference_link) { %{<a href="#{reference}">Reference</a>} } + let(:reference_link) { %(<a href="#{reference}">Reference</a>) } let(:reference) { (issue_url + "#note_123").to_s } let(:issue) { create(:issue, project: project2) } let(:project2) { create(:project, :public, namespace: namespace) } @@ -519,7 +519,7 @@ def helper it 'links to a valid reference for cross-reference in link href' do reference = (issue_url + "#note_123").to_s - reference_link = %{<a href="#{reference}">Reference</a>} + reference_link = %(<a href="#{reference}">Reference</a>) doc = reference_filter("See #{reference_link}", context) @@ -530,7 +530,7 @@ def helper it 'links to a valid reference for issue reference in the link href' do reference = issue.to_reference(group) - reference_link = %{<a href="#{reference}">Reference</a>} + reference_link = %(<a href="#{reference}">Reference</a>) doc = reference_filter("See #{reference_link}", context) link = doc.css('a').first 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 91b051d71ec529c8d3ea1cf561090461631e5c30..a4587b70dfabcd3368a985f941acf013e54b9e25 100644 --- a/spec/lib/banzai/filter/references/label_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/label_reference_filter_spec.rb @@ -19,7 +19,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Label #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -64,14 +64,14 @@ doc = reference_filter("Label #{reference}") link = doc.css('a').first.attr('href') - expect(link).to match %r(https?://) + expect(link).to match %r{https?://} end it 'does not include protocol when :only_path true' do doc = reference_filter("Label #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} end it 'links to issue list when :label_url_method is not present' do @@ -118,7 +118,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)}) end it 'ignores invalid label IDs' do @@ -142,7 +142,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}).") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.)) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.}) end it 'ignores invalid label names' do @@ -166,7 +166,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}).") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.)) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\)\.}) end it 'ignores invalid label names' do @@ -191,7 +191,7 @@ it 'does not include trailing punctuation', :aggregate_failures do ['.', ', ok?', '...', '?', '!', ': is that ok?'].each do |trailing_punctuation| doc = filter("Label #{reference}#{trailing_punctuation}") - expect(doc.to_html).to match(%r(<span.+><a.+><span.+>\?g\.fm&</span></a></span>#{Regexp.escape(trailing_punctuation)})) + expect(doc.to_html).to match(%r{<span.+><a.+><span.+>\?g\.fm&</span></a></span>#{Regexp.escape(trailing_punctuation)}}) end end @@ -217,7 +217,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -241,7 +241,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -265,7 +265,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>g\.fm & references\?</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>g\.fm & references\?</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -344,7 +344,7 @@ end describe 'referencing a label in a link href' do - let(:reference) { %{<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}") @@ -355,7 +355,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+>Label</a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+>Label</a></span>\.\)}) end it 'includes a data-project attribute' do @@ -393,7 +393,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do @@ -416,7 +416,7 @@ it 'links with adjacent text' do doc = reference_filter("Label (#{reference}.)") - expect(doc.to_html).to match(%r(\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\))) + expect(doc.to_html).to match(%r{\(<span.+><a.+><span.+>#{group_label.name}</span></a></span>\.\)}) end it 'ignores invalid label names' do diff --git a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb index 156455221cf5f3f659e84ca2fe9ba950216f2a0c..ccc8478c7d8af3129c232d8169d695ea358a0495 100644 --- a/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/merge_request_reference_filter_spec.rb @@ -12,7 +12,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Merge #{merge.to_reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -83,7 +83,7 @@ end it 'escapes the title attribute' do - merge.update_attribute(:title, %{"></a>whatever<a title="}) + merge.update_attribute(:title, %("></a>whatever<a title=")) doc = reference_filter("Merge #{reference}") expect(doc.text).to eq "Merge #{reference}" @@ -141,7 +141,7 @@ doc = reference_filter("Merge #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_merge_request_url(project, merge, only_path: true) end end 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 7caa6efff6660746ad71f7887f2a3c64251e387e..1fa62d70b72823256e5644b93c805ce97dcc156b 100644 --- a/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/milestone_reference_filter_spec.rb @@ -16,7 +16,7 @@ end shared_examples 'reference parsing' do - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>milestone #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -49,7 +49,7 @@ doc = reference_filter("Milestone #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.milestone_path(milestone) end end @@ -63,7 +63,7 @@ it 'links with adjacent text' do doc = reference_filter("Milestone (#{reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)}) end it 'ignores invalid milestone IIDs' do @@ -89,12 +89,12 @@ it 'links with adjacent text' do doc = reference_filter("Milestone (#{reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)}) end it 'links with adjacent html tags' do doc = reference_filter("Milestone <p>#{reference}</p>.") - expect(doc.to_html).to match(%r(<p><a.+>#{milestone.reference_link_text}</a></p>)) + expect(doc.to_html).to match(%r{<p><a.+>#{milestone.reference_link_text}</a></p>}) end it 'ignores invalid milestone names' do @@ -120,7 +120,7 @@ it 'links with adjacent text' do doc = reference_filter("Milestone (#{reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>#{milestone.reference_link_text}</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>#{milestone.reference_link_text}</a>\.\)}) end it 'ignores invalid milestone names' do @@ -132,7 +132,7 @@ shared_examples 'referencing a milestone in a link href' do let(:unquoted_reference) { "#{Milestone.reference_prefix}#{milestone.name}" } - let(:link_reference) { %{<a href="#{unquoted_reference}">Milestone</a>} } + let(:link_reference) { %(<a href="#{unquoted_reference}">Milestone</a>) } before do milestone.update!(name: 'gfm') @@ -146,7 +146,7 @@ it 'links with adjacent text' do doc = reference_filter("Milestone (#{link_reference}.)") - expect(doc.to_html).to match(%r(\(<a.+>Milestone</a>\.\))) + expect(doc.to_html).to match(%r{\(<a.+>Milestone</a>\.\)}) end it 'includes a data-project attribute' do @@ -169,7 +169,7 @@ 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) { %{<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}") @@ -220,7 +220,7 @@ it 'escapes the name attribute' do allow_next_instance_of(Milestone) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") @@ -257,7 +257,7 @@ it 'escapes the name attribute' do allow_next_instance_of(Milestone) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") @@ -294,7 +294,7 @@ it 'escapes the name attribute' do allow_next_instance_of(Milestone) do |instance| - allow(instance).to receive(:title).and_return(%{"></a>whatever<a title="}) + allow(instance).to receive(:title).and_return(%("></a>whatever<a title=")) end doc = reference_filter("See #{reference}") diff --git a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb index b6d6ff2309a0c87586d4c21b28ff36e57c7e510f..9433862ac8ace61b1272def92ce45063e6870d90 100644 --- a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb @@ -47,7 +47,7 @@ def get_reference(project) expect(doc.css('a').first.attr('href')).to eq urls.project_url(subject) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Hey #{CGI.escapeHTML(reference)}</#{elem}>" expect(reference_filter(act).to_html).to eq exp diff --git a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb index 32d1cb095d33adcc2320656e6b678995e4882e6e..b196d85ba8a1f1e87960efb93f65552e92f9f5f8 100644 --- a/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/snippet_reference_filter_spec.rb @@ -13,7 +13,7 @@ expect { described_class.call('') }.to raise_error(ArgumentError, /:project/) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Snippet #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp @@ -45,7 +45,7 @@ end it 'escapes the title attribute' do - snippet.update_attribute(:title, %{"></a>whatever<a title="}) + snippet.update_attribute(:title, %("></a>whatever<a title=")) doc = reference_filter("Snippet #{reference}") expect(doc.text).to eq "Snippet #{reference}" @@ -76,7 +76,7 @@ doc = reference_filter("Snippet #{reference}", only_path: true) link = doc.css('a').first.attr('href') - expect(link).not_to match %r(https?://) + expect(link).not_to match %r{https?://} expect(link).to eq urls.project_snippet_url(project, snippet, only_path: true) end end diff --git a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb index 276701a298485d754406d858477ff16929758acc..7a11ff3ac3db9926ced626ec805e8fd8296b5ccc 100644 --- a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb @@ -32,7 +32,7 @@ def get_reference(user) expect(reference_filter(act).to_html).to eq(exp) end - %w(pre code a style).each do |elem| + %w[pre code a style].each do |elem| it "ignores valid references contained inside '#{elem}' element" do exp = act = "<#{elem}>Hey #{reference}</#{elem}>" expect(reference_filter(act).to_html).to eq exp diff --git a/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb b/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb index 4aacebe60245e3d4241a0a5eec1fdb57acf87051..5fe9433cef3b7f295db04876d48aeb8652aa3145 100644 --- a/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb +++ b/spec/lib/banzai/filter/syntax_highlight_filter_spec.rb @@ -87,13 +87,13 @@ end context "languages that should be passed through" do - %w(math mermaid plantuml suggestion).each do |lang| + %w[math mermaid plantuml suggestion].each do |lang| context "when #{lang} is specified" do it "highlights as plaintext but with the correct language attribute and class" do - result = filter(%{<pre data-canonical-lang="#{lang}"><code>This is a test</code></pre>}) + result = filter(%(<pre data-canonical-lang="#{lang}"><code>This is a test</code></pre>)) copy_code_btn = '<copy-code></copy-code>' unless lang == 'suggestion' - expect(result.to_html.delete("\n")).to eq(%{<div class="gl-relative markdown-code-block js-markdown-code"><pre data-canonical-lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre>#{copy_code_btn}</div>}) + expect(result.to_html.delete("\n")).to eq(%(<div class="gl-relative markdown-code-block js-markdown-code"><pre data-canonical-lang="#{lang}" class="code highlight js-syntax-highlight language-#{lang}" lang="#{lang}" v-pre="true"><code><span id="LC1" class="line" lang="#{lang}">This is a test</span></code></pre>#{copy_code_btn}</div>)) end include_examples "XSS prevention", lang diff --git a/spec/lib/banzai/filter_array_spec.rb b/spec/lib/banzai/filter_array_spec.rb index bb457568bee03c12624c29b5c403dbdcc6412c51..1c401fdaf8a31cc8c87cfd2e172d57077787538c 100644 --- a/spec/lib/banzai/filter_array_spec.rb +++ b/spec/lib/banzai/filter_array_spec.rb @@ -5,37 +5,37 @@ RSpec.describe Banzai::FilterArray, feature_category: :team_planning do describe '#insert_after' do it 'inserts an element after a provided element' do - filters = described_class.new(%w(a b c)) + filters = described_class.new(%w[a b c]) filters.insert_after('b', '1') - expect(filters).to eq %w(a b 1 c) + expect(filters).to eq %w[a b 1 c] end it 'inserts an element at the end when the provided element does not exist' do - filters = described_class.new(%w(a b c)) + filters = described_class.new(%w[a b c]) filters.insert_after('d', '1') - expect(filters).to eq %w(a b c 1) + expect(filters).to eq %w[a b c 1] end end describe '#insert_before' do it 'inserts an element before a provided element' do - filters = described_class.new(%w(a b c)) + filters = described_class.new(%w[a b c]) filters.insert_before('b', '1') - expect(filters).to eq %w(a 1 b c) + expect(filters).to eq %w[a 1 b c] end it 'inserts an element at the beginning when the provided element does not exist' do - filters = described_class.new(%w(a b c)) + filters = described_class.new(%w[a b c]) filters.insert_before('d', '1') - expect(filters).to eq %w(1 a b c) + expect(filters).to eq %w[1 a b c] end end end diff --git a/spec/lib/banzai/pipeline/description_pipeline_spec.rb b/spec/lib/banzai/pipeline/description_pipeline_spec.rb index fa25612a06eec1fa505121c226d5671a81775542..2d831d7f7e028d32880238989b403b8bf314b800 100644 --- a/spec/lib/banzai/pipeline/description_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/description_pipeline_spec.rb @@ -27,7 +27,7 @@ def parse(html) expect(doc.strip).to eq 'Description' end - %w(pre code img ol ul li).each do |elem| + %w[pre code img ol ul li].each do |elem| it "removes '#{elem}' elements" do act = "<#{elem}>Description</#{elem}>" @@ -35,7 +35,7 @@ def parse(html) end end - %w(b i strong em a ins del sup sub).each do |elem| + %w[b i strong em a ins del sup sub].each do |elem| it "still allows '#{elem}' elements" do exp = act = "<#{elem}>Description</#{elem}>" diff --git a/spec/lib/banzai/pipeline/full_pipeline_spec.rb b/spec/lib/banzai/pipeline/full_pipeline_spec.rb index 6ef03b58f67f9282abed0deebcb26d92a37df4f6..e00d0b6c279d3a8dfcb4ab064e4a9cb19d84aa4e 100644 --- a/spec/lib/banzai/pipeline/full_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/full_pipeline_spec.rb @@ -30,7 +30,7 @@ it 'escapes the data-original attribute on a reference' do markdown = %{[">bad things](#{issue.to_reference})} result = described_class.to_html(markdown, project: project) - expect(result).to include(%{data-original='\"&gt;bad things'}) + expect(result).to include(%(data-original='\"&gt;bad things')) end end diff --git a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb index 58d6b9b9a2c07c888c9fb504bf8049f048892edc..a845e4fa7f470ec4eced3a7919b23bc931c9cb2b 100644 --- a/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/gfm_pipeline_spec.rb @@ -177,7 +177,7 @@ stub_asset_proxy_setting(enabled: true) stub_asset_proxy_setting(secret_key: 'shared-secret') stub_asset_proxy_setting(url: 'https://assets.example.com') - stub_asset_proxy_setting(allowlist: %W(gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host})) + stub_asset_proxy_setting(allowlist: %W[gitlab.com *.mydomain.com #{Gitlab.config.gitlab.host}]) stub_asset_proxy_setting(domain_regexp: Banzai::Filter::AssetProxyFilter.compile_allowlist(Gitlab.config.asset_proxy.allowlist)) end diff --git a/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb b/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb index ae01939605ef900fd23a6d1dd120ac1bef230a6d..3ed4a70d160924cac9d2dfe635a805cac5ab0470 100644 --- a/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb +++ b/spec/lib/banzai/pipeline/plain_markdown_pipeline_spec.rb @@ -85,7 +85,7 @@ where(:markdown, :expected) do %q! | %q(<a href="/bar@" title="@title">foo</a>) - %![foo]\n\n[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/base_parser_spec.rb b/spec/lib/banzai/reference_parser/base_parser_spec.rb index bc7a93a7cde89a0d3bfe532e6a354794c22819c1..b55ee01ccebf065124dfec8ca7a070eac00b70e8 100644 --- a/spec/lib/banzai/reference_parser/base_parser_spec.rb +++ b/spec/lib/banzai/reference_parser/base_parser_spec.rb @@ -116,7 +116,7 @@ def self.reference_class links = Nokogiri::HTML.fragment("<a data-foo='1'></a><a data-foo='2'></a>").children expect(subject).not_to receive(:references_relation) - expect(subject.referenced_by(links, ids_only: true)).to eq(%w(1 2)) + expect(subject.referenced_by(links, ids_only: true)).to eq(%w[1 2]) end context 'and the html fragment does not contain any attributes' do diff --git a/spec/lib/banzai/reference_parser/issue_parser_spec.rb b/spec/lib/banzai/reference_parser/issue_parser_spec.rb index 072df6a23aac4e9061ce7fbb76208c0999174f95..e1abb9082f3cc36ad3b710aa75c0231b9bc6fec0 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 @@ end def issue_link(issue) - Nokogiri::HTML.fragment(%{<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 bab535b67bfd8db2b00cf59d232ce9c72885022e..b9340812676bff1a6a7c8f6a14efd7007117822d 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 @@ end def merge_request_link(merge_request) - Nokogiri::HTML.fragment(%{<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/bitbucket/collection_spec.rb b/spec/lib/bitbucket/collection_spec.rb index 715b78c95eb2d27c5cb63c6095af731a8a19496d..9e3848591497c7813b5136022cb94c593589ee67 100644 --- a/spec/lib/bitbucket/collection_spec.rb +++ b/spec/lib/bitbucket/collection_spec.rb @@ -21,6 +21,6 @@ def items it "iterates paginator" do collection = described_class.new(TestPaginator.new) - expect(collection.to_a).to match(%w(result_1_page_1 result_2_page_1 result_1_page_2 result_2_page_2)) + expect(collection.to_a).to match(%w[result_1_page_1 result_2_page_1 result_1_page_2 result_2_page_2]) end end diff --git a/spec/lib/bitbucket/representation/repo_spec.rb b/spec/lib/bitbucket/representation/repo_spec.rb index b5b9f45f3d446975edfd0df42b84c5237058e7e1..ba5a3306d07c1ff2ae09b0d12521db28c74ec7af 100644 --- a/spec/lib/bitbucket/representation/repo_spec.rb +++ b/spec/lib/bitbucket/representation/repo_spec.rb @@ -31,7 +31,7 @@ end describe '#owner_and_slug' do - it { expect(described_class.new({ 'full_name' => 'ben/test' }).owner_and_slug).to eq(%w(ben test)) } + it { expect(described_class.new({ 'full_name' => 'ben/test' }).owner_and_slug).to eq(%w[ben test]) } end describe '#owner' do diff --git a/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb b/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb index 43da0131dd225912fd67a5d2b593dffa5b6c6933..cc1f88d9613561dda1e19b175602c103138282ac 100644 --- a/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb +++ b/spec/lib/bulk_imports/common/pipelines/boards_pipeline_spec.rb @@ -65,7 +65,7 @@ expect(board).to be_present expect(board.project.id).to eq(project.id) expect(board.lists.count).to eq(3) - expect(board.lists.map(&:list_type).sort).to match_array(%w(backlog closed label)) + expect(board.lists.map(&:list_type).sort).to match_array(%w[backlog closed label]) expect(board.lists.find_by(list_type: "label").label.title).to eq("test") end end @@ -90,7 +90,7 @@ expect(board).to be_present expect(board.group.id).to eq(group.id) expect(board.lists.count).to eq(3) - expect(board.lists.map(&:list_type).sort).to match_array(%w(backlog closed label)) + expect(board.lists.map(&:list_type).sort).to match_array(%w[backlog closed label]) expect(board.lists.find_by(list_type: "label").label.title).to eq("test") end end diff --git a/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb b/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb index 08a82bc84edf79aa1b1e93afae10622f1a28c558..435c7d5d6e42cc352ec20fc57e1eb70baa0ed333 100644 --- a/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb +++ b/spec/lib/bulk_imports/common/transformers/prohibited_attributes_transformer_spec.rb @@ -34,7 +34,7 @@ 'note_ids' => [1, 2, 3], 'remote_attachment_url' => 'http://something.dodgy', 'remote_attachment_request_header' => 'bad value', - 'remote_attachment_urls' => %w(http://something.dodgy http://something.okay), + 'remote_attachment_urls' => %w[http://something.dodgy http://something.okay], 'attributes' => { 'issue_ids' => [1, 2, 3], 'merge_request_ids' => [1, 2, 3],