diff options
Diffstat (limited to 'spec/support')
20 files changed, 231 insertions, 155 deletions
diff --git a/spec/support/import_export/export_file_helper.rb b/spec/support/import_export/export_file_helper.rb index 9a26f50903f..ee1b4a3c33a 100644 --- a/spec/support/import_export/export_file_helper.rb +++ b/spec/support/import_export/export_file_helper.rb @@ -21,21 +21,25 @@ module ExportFileHelper create(:label_link, label: label, target: issue) - ci_pipeline = create(:ci_pipeline, - project: project, - sha: merge_request.diff_head_sha, - ref: merge_request.source_branch, - statuses: [commit_status]) + ci_pipeline = create( + :ci_pipeline, + project: project, + sha: merge_request.diff_head_sha, + ref: merge_request.source_branch, + statuses: [commit_status] + ) create(:ci_build, pipeline: ci_pipeline, project: project) create(:milestone, project: project) create(:note, noteable: issue, project: project) create(:note, noteable: merge_request, project: project) create(:note, noteable: snippet, project: project) - create(:note_on_commit, - author: user, - project: project, - commit_id: ci_pipeline.sha) + create( + :note_on_commit, + author: user, + project: project, + commit_id: ci_pipeline.sha + ) event = create(:event, :created, target: milestone, project: project, author: user, action: 5) create(:push_event_payload, event: event) diff --git a/spec/support/shared_examples/controllers/snippets_sort_order_shared_examples.rb b/spec/support/shared_examples/controllers/snippets_sort_order_shared_examples.rb index 112b9cbb204..f658cfac0f5 100644 --- a/spec/support/shared_examples/controllers/snippets_sort_order_shared_examples.rb +++ b/spec/support/shared_examples/controllers/snippets_sort_order_shared_examples.rb @@ -15,8 +15,9 @@ RSpec.shared_examples 'snippets sort order' do context 'when no sort param is provided' do it 'calls SnippetsFinder with updated_at sort option' do - expect(SnippetsFinder).to receive(:new).with(user, - hash_including(sort: 'updated_desc')).and_call_original + expect(SnippetsFinder).to receive(:new) + .with(user, hash_including(sort: 'updated_desc')) + .and_call_original subject end @@ -27,8 +28,9 @@ RSpec.shared_examples 'snippets sort order' do let(:sort_argument) { { sort: order } } it 'calls SnippetsFinder with the given sort param' do - expect(SnippetsFinder).to receive(:new).with(user, - hash_including(sort: order)).and_call_original + expect(SnippetsFinder).to receive(:new) + .with(user, hash_including(sort: order)) + .and_call_original subject end diff --git a/spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb b/spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb index 768b54dc73e..32aa566c27e 100644 --- a/spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb +++ b/spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb @@ -399,11 +399,10 @@ RSpec.shared_examples 'wiki controller actions' do let(:id_param) { wiki_title } subject(:request) do - patch(:update, - params: routing_params.merge( - id: id_param, - wiki: { title: new_title, content: new_content } - )) + patch(:update, params: routing_params.merge( + id: id_param, + wiki: { title: new_title, content: new_content } + )) end it_behaves_like 'edit action' @@ -439,10 +438,9 @@ RSpec.shared_examples 'wiki controller actions' do let(:new_content) { 'New content' } subject(:request) do - post(:create, - params: routing_params.merge( - wiki: { title: new_title, content: new_content } - )) + post(:create, params: routing_params.merge( + wiki: { title: new_title, content: new_content } + )) end context 'when page is valid' do @@ -476,10 +474,9 @@ RSpec.shared_examples 'wiki controller actions' do let(:delete_user) { user } subject(:request) do - delete(:destroy, - params: routing_params.merge( - id: id_param - )) + delete(:destroy, params: routing_params.merge( + id: id_param + )) end before do diff --git a/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb b/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb index 2bcbd5e5190..14e53dc8655 100644 --- a/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb +++ b/spec/support/shared_examples/features/editable_merge_request_shared_examples.rb @@ -83,9 +83,15 @@ RSpec.shared_examples 'an editable merge request' do fill_in 'merge_request_title', with: 'bug 345' fill_in 'merge_request_description', with: 'bug description' - click_button 'Save changes' - - expect(page).to have_content 'Someone edited the merge request the same time you did' + click_button _('Save changes') + + expect(page).to have_content( + format( + _("Someone edited this %{model_name} at the same time you did. Please check out the %{link_to_model} and make sure your changes will not unintentionally remove theirs."), # rubocop:disable Layout/LineLength + model_name: _('merge request'), + link_to_model: _('merge request') + ) + ) end it 'preserves description textarea height', :js do diff --git a/spec/support/shared_examples/features/milestone_editing_shared_examples.rb b/spec/support/shared_examples/features/milestone_editing_shared_examples.rb new file mode 100644 index 00000000000..d21bf62ecfa --- /dev/null +++ b/spec/support/shared_examples/features/milestone_editing_shared_examples.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +RSpec.shared_examples 'milestone handling version conflicts' do + it 'warns about version conflict when milestone has been updated in the background' do + # Update the milestone in the background in order to trigger a version conflict + milestone.update!(title: "New title") + + fill_in _('Title'), with: 'Title for version conflict' + fill_in _('Description'), with: 'Description for version conflict' + + click_button _('Save changes') + + expect(page).to have_content( + format( + _("Someone edited this %{model_name} at the same time you did. Please check out the %{link_to_model} and make sure your changes will not unintentionally remove theirs."), # rubocop:disable Layout/LineLength + model_name: _('milestone'), + link_to_model: _('milestone') + ) + ) + end +end diff --git a/spec/support/shared_examples/features/search/redacted_search_results_shared_examples.rb b/spec/support/shared_examples/features/search/redacted_search_results_shared_examples.rb index 4d242d0e719..cbd0ffbab21 100644 --- a/spec/support/shared_examples/features/search/redacted_search_results_shared_examples.rb +++ b/spec/support/shared_examples/features/search/redacted_search_results_shared_examples.rb @@ -48,14 +48,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible issue' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'Issue', id: unreadable.id, ability: :read_issue } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'Issue', id: unreadable.id, ability: :read_issue } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end @@ -95,16 +99,18 @@ RSpec.shared_examples 'a redacted search results' do end let(:unredacted_results) do - ar_relation(Note, - readable_note_on_commit, - readable_diff_note, - readable_note_on_mr, - readable_diff_note_on_mr, - readable_note_on_project_snippet, - unreadable_note_on_commit, - unreadable_diff_note, - unreadable_note_on_mr, - unreadable_note_on_project_snippet) + ar_relation( + Note, + readable_note_on_commit, + readable_diff_note, + readable_note_on_mr, + readable_diff_note_on_mr, + readable_note_on_project_snippet, + unreadable_note_on_commit, + unreadable_diff_note, + unreadable_note_on_mr, + unreadable_note_on_project_snippet + ) end let(:scope) { 'notes' } @@ -112,23 +118,29 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible notes' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'Note', id: unreadable_note_on_commit.id, ability: :read_note }, - { class_name: 'DiffNote', id: unreadable_diff_note.id, ability: :read_note }, - { class_name: 'DiscussionNote', id: unreadable_note_on_mr.id, ability: :read_note }, - { class_name: 'Note', id: unreadable_note_on_project_snippet.id, ability: :read_note } - ]))) - - expect(result).to contain_exactly(readable_note_on_commit, - readable_diff_note, - readable_note_on_mr, - readable_diff_note_on_mr, - readable_note_on_project_snippet) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'Note', id: unreadable_note_on_commit.id, ability: :read_note }, + { class_name: 'DiffNote', id: unreadable_diff_note.id, ability: :read_note }, + { class_name: 'DiscussionNote', id: unreadable_note_on_mr.id, ability: :read_note }, + { class_name: 'Note', id: unreadable_note_on_project_snippet.id, ability: :read_note } + ] + ) + ) + ) + + expect(result).to contain_exactly( + readable_note_on_commit, + readable_diff_note, + readable_note_on_mr, + readable_diff_note_on_mr, + readable_note_on_project_snippet + ) end end @@ -141,14 +153,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible merge request' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'MergeRequest', id: unreadable.id, ability: :read_merge_request } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'MergeRequest', id: unreadable.id, ability: :read_merge_request } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end @@ -169,14 +185,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible blob' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'Gitlab::Search::FoundBlob', id: unreadable.id, ability: :read_blob } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'Gitlab::Search::FoundBlob', id: unreadable.id, ability: :read_blob } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end @@ -191,14 +211,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible blob' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'Gitlab::Search::FoundWikiPage', id: unreadable.id, ability: :read_wiki_page } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'Gitlab::Search::FoundWikiPage', id: unreadable.id, ability: :read_wiki_page } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end @@ -213,14 +237,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible snippet' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'ProjectSnippet', id: unreadable.id, ability: :read_snippet } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'ProjectSnippet', id: unreadable.id, ability: :read_snippet } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end @@ -239,14 +267,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible snippet' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'PersonalSnippet', id: unreadable.id, ability: :read_snippet } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'PersonalSnippet', id: unreadable.id, ability: :read_snippet } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end @@ -265,14 +297,18 @@ RSpec.shared_examples 'a redacted search results' do it 'redacts the inaccessible commit' do expect(search_service.send(:logger)) .to receive(:error) - .with(hash_including( - message: "redacted_search_results", - current_user_id: user.id, - query: search, - filtered: array_including( - [ - { class_name: 'Commit', id: unreadable.id, ability: :read_commit } - ]))) + .with( + hash_including( + message: "redacted_search_results", + current_user_id: user.id, + query: search, + filtered: array_including( + [ + { class_name: 'Commit', id: unreadable.id, ability: :read_commit } + ] + ) + ) + ) expect(result).to contain_exactly(readable) end diff --git a/spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb b/spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb index a7c32932ba7..767caffd417 100644 --- a/spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb +++ b/spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb @@ -9,9 +9,11 @@ RSpec.shared_examples 'User views a wiki page' do let(:path) { 'image.png' } let(:wiki_page) do - create(:wiki_page, - wiki: wiki, - title: 'home', content: "Look at this [image](#{path})\n\n ![alt text](#{path})") + create( + :wiki_page, + wiki: wiki, + title: 'home', content: "Look at this [image](#{path})\n\n ![alt text](#{path})" + ) end before do diff --git a/spec/support/shared_examples/graphql/members_shared_examples.rb b/spec/support/shared_examples/graphql/members_shared_examples.rb index 5cba8baa829..5ab17f5a49d 100644 --- a/spec/support/shared_examples/graphql/members_shared_examples.rb +++ b/spec/support/shared_examples/graphql/members_shared_examples.rb @@ -39,8 +39,10 @@ RSpec.shared_examples 'querying members with a group' do let(:base_args) { { relations: described_class.arguments['relations'].default_value } } subject do - resolve(described_class, obj: resource, args: base_args.merge(args), - ctx: { current_user: user_4 }, arg_style: :internal) + resolve( + described_class, obj: resource, args: base_args.merge(args), + ctx: { current_user: user_4 }, arg_style: :internal + ) end describe '#resolve' do @@ -83,8 +85,10 @@ RSpec.shared_examples 'querying members with a group' do let_it_be(:other_user) { create(:user) } subject do - resolve(described_class, obj: resource, args: base_args.merge(args), - ctx: { current_user: other_user }, arg_style: :internal) + resolve( + described_class, obj: resource, args: base_args.merge(args), + ctx: { current_user: other_user }, arg_style: :internal + ) end it 'generates an error' do diff --git a/spec/support/shared_examples/graphql/mutation_shared_examples.rb b/spec/support/shared_examples/graphql/mutation_shared_examples.rb index dc590e23ace..808fb097f29 100644 --- a/spec/support/shared_examples/graphql/mutation_shared_examples.rb +++ b/spec/support/shared_examples/graphql/mutation_shared_examples.rb @@ -15,7 +15,7 @@ RSpec.shared_examples 'a mutation that returns top-level errors' do |errors: []| expect(graphql_errors).to be_present - error_messages = graphql_errors.map { |e| e['message'] } + error_messages = graphql_errors.pluck('message') expect(error_messages).to match_errors end @@ -25,7 +25,7 @@ end # the mutation. RSpec.shared_examples 'a mutation that returns a top-level access error' do include_examples 'a mutation that returns top-level errors', - errors: [Gitlab::Graphql::Authorize::AuthorizeResource::RESOURCE_ACCESS_ERROR] + errors: [Gitlab::Graphql::Authorize::AuthorizeResource::RESOURCE_ACCESS_ERROR] end RSpec.shared_examples 'an invalid argument to the mutation' do |argument_name:| diff --git a/spec/support/shared_examples/graphql/mutations/set_assignees_shared_examples.rb b/spec/support/shared_examples/graphql/mutations/set_assignees_shared_examples.rb index 022e2308517..3b9dadf2e80 100644 --- a/spec/support/shared_examples/graphql/mutations/set_assignees_shared_examples.rb +++ b/spec/support/shared_examples/graphql/mutations/set_assignees_shared_examples.rb @@ -16,10 +16,12 @@ RSpec.shared_examples 'an assignable resource' do let(:mode) { described_class.arguments['operationMode'].default_value } subject do - mutation.resolve(project_path: resource.project.full_path, - iid: resource.iid, - operation_mode: mode, - assignee_usernames: assignee_usernames) + mutation.resolve( + project_path: resource.project.full_path, + iid: resource.iid, + operation_mode: mode, + assignee_usernames: assignee_usernames + ) end it 'raises an error if the resource is not accessible to the user' do diff --git a/spec/support/shared_examples/graphql/notes_on_noteables_shared_examples.rb b/spec/support/shared_examples/graphql/notes_on_noteables_shared_examples.rb index 09239ced73a..99d122e8254 100644 --- a/spec/support/shared_examples/graphql/notes_on_noteables_shared_examples.rb +++ b/spec/support/shared_examples/graphql/notes_on_noteables_shared_examples.rb @@ -4,9 +4,11 @@ RSpec.shared_context 'exposing regular notes on a noteable in GraphQL' do include GraphqlHelpers let(:note) do - create(:note, - noteable: noteable, - project: (noteable.project if noteable.respond_to?(:project))) + create( + :note, + noteable: noteable, + project: (noteable.project if noteable.respond_to?(:project)) + ) end let(:user) { note.author } diff --git a/spec/support/shared_examples/requests/api/container_repositories_shared_examples.rb b/spec/support/shared_examples/requests/api/container_repositories_shared_examples.rb index f5c41416763..3ff52166990 100644 --- a/spec/support/shared_examples/requests/api/container_repositories_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/container_repositories_shared_examples.rb @@ -18,7 +18,7 @@ RSpec.shared_examples 'returns repositories for allowed users' do |user_type, sc subject expect(json_response.length).to eq(2) - expect(json_response.map { |repository| repository['id'] }).to contain_exactly( + expect(json_response.pluck('id')).to contain_exactly( root_repository.id, test_repository.id) expect(response.body).not_to include('tags') expect(response.body).not_to include('tags_count') @@ -47,7 +47,7 @@ RSpec.shared_examples 'returns tags for allowed users' do |user_type, scope| subject expect(json_response.length).to eq(2) - expect(json_response.map { |repository| repository['id'] }).to contain_exactly( + expect(json_response.pluck('id')).to contain_exactly( root_repository.id, test_repository.id) expect(response.body).to include('tags') end diff --git a/spec/support/shared_examples/requests/api/custom_attributes_shared_examples.rb b/spec/support/shared_examples/requests/api/custom_attributes_shared_examples.rb index e3ba51addaf..804221b7416 100644 --- a/spec/support/shared_examples/requests/api/custom_attributes_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/custom_attributes_shared_examples.rb @@ -14,7 +14,7 @@ RSpec.shared_examples 'custom attributes endpoints' do |attributable_name| get api("/#{attributable_name}", user), params: { custom_attributes: { foo: 'foo', bar: 'bar' } } expect(response).to have_gitlab_http_status(:ok) - expect(json_response.map { |r| r['id'] }).to include(attributable.id, other_attributable.id) + expect(json_response.pluck('id')).to include(attributable.id, other_attributable.id) end end diff --git a/spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb b/spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb index f5835460a77..5e9dfc826d4 100644 --- a/spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb @@ -279,11 +279,11 @@ RSpec.shared_examples 'group and project packages query' do end def npm_pipeline_ids - graphql_data_npm_package.dig('pipelines', 'nodes').map { |pipeline| pipeline['id'] } + graphql_data_npm_package.dig('pipelines', 'nodes').pluck('id') end def composer_pipeline_ids - graphql_data_composer_package.dig('pipelines', 'nodes').map { |pipeline| pipeline['id'] } + graphql_data_composer_package.dig('pipelines', 'nodes').pluck('id') end def graphql_data_npm_package diff --git a/spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb b/spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb index b4019d7c232..161f4a02b8c 100644 --- a/spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb @@ -38,7 +38,7 @@ RSpec.shared_examples 'a package with files' do context 'with package files pending destruction' do let_it_be(:package_file_pending_destruction) { create(:package_file, :pending_destruction, package: package) } - let(:response_package_file_ids) { package_files_response.map { |pf| pf['id'] } } + let(:response_package_file_ids) { package_files_response.pluck('id') } it 'does not return them' do expect(package.reload.package_files).to include(package_file_pending_destruction) diff --git a/spec/support/shared_examples/requests/api/labels_api_shared_examples.rb b/spec/support/shared_examples/requests/api/labels_api_shared_examples.rb index 41d21490343..fba0533251a 100644 --- a/spec/support/shared_examples/requests/api/labels_api_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/labels_api_shared_examples.rb @@ -9,6 +9,6 @@ RSpec.shared_examples 'fetches labels' do expect(json_response).to be_an Array expect(json_response).to all(match_schema('public_api/v4/labels/label')) expect(json_response.size).to eq(expected_labels.size) - expect(json_response.map { |r| r['name'] }).to match_array(expected_labels) + expect(json_response.pluck('name')).to match_array(expected_labels) end end diff --git a/spec/support/shared_examples/requests/api/milestones_shared_examples.rb b/spec/support/shared_examples/requests/api/milestones_shared_examples.rb index 1ea11ba3d7c..ee7d0e86771 100644 --- a/spec/support/shared_examples/requests/api/milestones_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/milestones_shared_examples.rb @@ -52,7 +52,7 @@ RSpec.shared_examples 'group and project milestones' do |route_definition| expect(response).to have_gitlab_http_status(:ok) expect(json_response).to be_an Array expect(json_response.length).to eq(2) - expect(json_response.map { |m| m['id'] }).to match_array([closed_milestone.id, other_milestone.id]) + expect(json_response.pluck('id')).to match_array([closed_milestone.id, other_milestone.id]) end it 'does not return any milestone if none found' do @@ -293,7 +293,7 @@ RSpec.shared_examples 'group and project milestones' do |route_definition| expect(json_response).to be_an Array # 2 for projects, 3 for group(which has another project with an issue) expect(json_response.size).to be_between(2, 3) - expect(json_response.map { |issue| issue['id'] }).to include(issue.id, confidential_issue.id) + expect(json_response.pluck('id')).to include(issue.id, confidential_issue.id) end it 'does not return confidential issues to team members with guest role' do @@ -306,7 +306,7 @@ RSpec.shared_examples 'group and project milestones' do |route_definition| expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) - expect(json_response.map { |issue| issue['id'] }).to include(issue.id) + expect(json_response.pluck('id')).to include(issue.id) end it 'does not return confidential issues to regular users' do @@ -316,7 +316,7 @@ RSpec.shared_examples 'group and project milestones' do |route_definition| expect(response).to include_pagination_headers expect(json_response).to be_an Array expect(json_response.size).to eq(1) - expect(json_response.map { |issue| issue['id'] }).to include(issue.id) + expect(json_response.pluck('id')).to include(issue.id) end it 'returns issues ordered by label priority' do diff --git a/spec/support/shared_examples/requests/api/notes_shared_examples.rb b/spec/support/shared_examples/requests/api/notes_shared_examples.rb index 0518749452e..b44ff952cdf 100644 --- a/spec/support/shared_examples/requests/api/notes_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/notes_shared_examples.rb @@ -14,7 +14,7 @@ RSpec.shared_examples 'noteable API' do |parent_type, noteable_type, id_name| it 'sorts by created_at in descending order by default' do get api("/#{parent_type}/#{parent.id}/#{noteable_type}/#{noteable[id_name]}/notes", user, admin_mode: user.admin?) - response_dates = json_response.map { |note| note['created_at'] } + response_dates = json_response.pluck('created_at') expect(json_response.length).to eq(4) expect(response_dates).to eq(response_dates.sort.reverse) @@ -42,7 +42,7 @@ RSpec.shared_examples 'noteable API' do |parent_type, noteable_type, id_name| it 'page breaks first page correctly' do get api("/#{parent_type}/#{parent.id}/#{noteable_type}/#{noteable[id_name]}/notes?per_page=4", user, admin_mode: user.admin?) - response_ids = json_response.map { |note| note['id'] } + response_ids = json_response.pluck('id') expect(response_ids).to include(@note2.id) expect(response_ids).not_to include(@first_note.id) @@ -51,7 +51,7 @@ RSpec.shared_examples 'noteable API' do |parent_type, noteable_type, id_name| it 'page breaks second page correctly' do get api("/#{parent_type}/#{parent.id}/#{noteable_type}/#{noteable[id_name]}/notes?per_page=4&page=2", user, admin_mode: user.admin?) - response_ids = json_response.map { |note| note['id'] } + response_ids = json_response.pluck('id') expect(response_ids).not_to include(@note2.id) expect(response_ids).to include(@first_note.id) @@ -62,7 +62,7 @@ RSpec.shared_examples 'noteable API' do |parent_type, noteable_type, id_name| it 'sorts by ascending order when requested' do get api("/#{parent_type}/#{parent.id}/#{noteable_type}/#{noteable[id_name]}/notes?sort=asc", user, admin_mode: user.admin?) - response_dates = json_response.map { |note| note['created_at'] } + response_dates = json_response.pluck('created_at') expect(json_response.length).to eq(4) expect(response_dates).to eq(response_dates.sort) @@ -71,7 +71,7 @@ RSpec.shared_examples 'noteable API' do |parent_type, noteable_type, id_name| it 'sorts by updated_at in descending order when requested' do get api("/#{parent_type}/#{parent.id}/#{noteable_type}/#{noteable[id_name]}/notes?order_by=updated_at", user, admin_mode: user.admin?) - response_dates = json_response.map { |note| note['updated_at'] } + response_dates = json_response.pluck('updated_at') expect(json_response.length).to eq(4) expect(response_dates).to eq(response_dates.sort.reverse) @@ -80,7 +80,7 @@ RSpec.shared_examples 'noteable API' do |parent_type, noteable_type, id_name| it 'sorts by updated_at in ascending order when requested' do get api("/#{parent_type}/#{parent.id}/#{noteable_type}/#{noteable[id_name]}/notes?order_by=updated_at&sort=asc", user, admin_mode: user.admin?) - response_dates = json_response.map { |note| note['updated_at'] } + response_dates = json_response.pluck('updated_at') expect(json_response.length).to eq(4) expect(response_dates).to eq(response_dates.sort) diff --git a/spec/support/shared_examples/requests/api/repository_storage_moves_shared_examples.rb b/spec/support/shared_examples/requests/api/repository_storage_moves_shared_examples.rb index 7df8d6a513d..3913d29e086 100644 --- a/spec/support/shared_examples/requests/api/repository_storage_moves_shared_examples.rb +++ b/spec/support/shared_examples/requests/api/repository_storage_moves_shared_examples.rb @@ -70,7 +70,7 @@ RSpec.shared_examples 'repository_storage_moves API' do |container_type| get_container_repository_storage_moves - json_ids = json_response.map { |storage_move| storage_move['id'] } + json_ids = json_response.pluck('id') expect(json_ids).to eq([storage_move.id, storage_move_middle.id, storage_move_oldest.id]) end diff --git a/spec/support/shared_examples/services/packages_shared_examples.rb b/spec/support/shared_examples/services/packages_shared_examples.rb index f63693dbf26..7a4d7f81e96 100644 --- a/spec/support/shared_examples/services/packages_shared_examples.rb +++ b/spec/support/shared_examples/services/packages_shared_examples.rb @@ -76,7 +76,7 @@ RSpec.shared_examples 'returns packages' do |container_type, user_type| subject expect(json_response.length).to eq(2) - expect(json_response.map { |package| package['id'] }).to contain_exactly(package1.id, package2.id) + expect(json_response.pluck('id')).to contain_exactly(package1.id, package2.id) end end end @@ -123,7 +123,7 @@ RSpec.shared_examples 'returns packages with subgroups' do |container_type, user subject expect(json_response.length).to eq(3) - expect(json_response.map { |package| package['id'] }).to contain_exactly(package1.id, package2.id, package3.id) + expect(json_response.pluck('id')).to contain_exactly(package1.id, package2.id, package3.id) end end end @@ -138,7 +138,7 @@ RSpec.shared_examples 'package sorting' do |order_by| it 'returns the sorted packages' do subject - expect(json_response.map { |package| package['id'] }).to eq(packages.map(&:id)) + expect(json_response.pluck('id')).to eq(packages.map(&:id)) end end @@ -148,7 +148,7 @@ RSpec.shared_examples 'package sorting' do |order_by| it 'returns the sorted packages' do subject - expect(json_response.map { |package| package['id'] }).to eq(packages.reverse.map(&:id)) + expect(json_response.pluck('id')).to eq(packages.reverse.map(&:id)) end end end @@ -225,7 +225,7 @@ RSpec.shared_examples 'filters on each package_type' do |is_project: false| subject expect(json_response.length).to eq(1) - expect(json_response.map { |package| package['package_type'] }).to contain_exactly(package_type) + expect(json_response.pluck('package_type')).to contain_exactly(package_type) end end end @@ -253,7 +253,7 @@ RSpec.shared_examples 'with versionless packages' do it 'does not return the package' do subject - expect(json_response.map { |package| package['id'] }).not_to include(versionless_package.id) + expect(json_response.pluck('id')).not_to include(versionless_package.id) end end @@ -268,7 +268,7 @@ RSpec.shared_examples 'with versionless packages' do it 'returns the package' do subject - expect(json_response.map { |package| package['id'] }).to include(versionless_package.id) + expect(json_response.pluck('id')).to include(versionless_package.id) end end end @@ -295,7 +295,7 @@ RSpec.shared_examples 'with status param' do it 'does not return the package' do subject - expect(json_response.map { |package| package['id'] }).not_to include(hidden_package.id) + expect(json_response.pluck('id')).not_to include(hidden_package.id) end end @@ -309,7 +309,7 @@ RSpec.shared_examples 'with status param' do it 'returns the package' do subject - expect(json_response.map { |package| package['id'] }).to include(hidden_package.id) + expect(json_response.pluck('id')).to include(hidden_package.id) end end end |