diff options
Diffstat (limited to 'spec/graphql/resolvers')
-rw-r--r-- | spec/graphql/resolvers/board_list_issues_resolver_spec.rb | 2 | ||||
-rw-r--r-- | spec/graphql/resolvers/board_lists_resolver_spec.rb | 4 | ||||
-rw-r--r-- | spec/graphql/resolvers/board_resolver_spec.rb | 2 | ||||
-rw-r--r-- | spec/graphql/resolvers/boards_resolver_spec.rb | 2 | ||||
-rw-r--r-- | spec/graphql/resolvers/container_repositories_resolver_spec.rb | 4 | ||||
-rw-r--r-- | spec/graphql/resolvers/group_packages_resolver_spec.rb | 8 | ||||
-rw-r--r-- | spec/graphql/resolvers/incident_management/timeline_event_tags_resolver_spec.rb | 92 | ||||
-rw-r--r-- | spec/graphql/resolvers/project_issues_resolver_spec.rb (renamed from spec/graphql/resolvers/issues_resolver_spec.rb) | 12 | ||||
-rw-r--r-- | spec/graphql/resolvers/projects_resolver_spec.rb | 2 | ||||
-rw-r--r-- | spec/graphql/resolvers/recent_boards_resolver_spec.rb | 2 | ||||
-rw-r--r-- | spec/graphql/resolvers/users_resolver_spec.rb | 14 | ||||
-rw-r--r-- | spec/graphql/resolvers/work_item_resolver_spec.rb | 8 | ||||
-rw-r--r-- | spec/graphql/resolvers/work_items/types_resolver_spec.rb | 20 |
13 files changed, 118 insertions, 54 deletions
diff --git a/spec/graphql/resolvers/board_list_issues_resolver_spec.rb b/spec/graphql/resolvers/board_list_issues_resolver_spec.rb index ab1f19abaad..d346b7aee93 100644 --- a/spec/graphql/resolvers/board_list_issues_resolver_spec.rb +++ b/spec/graphql/resolvers/board_list_issues_resolver_spec.rb @@ -7,7 +7,7 @@ RSpec.describe Resolvers::BoardListIssuesResolver do let_it_be(:user) { create(:user) } let_it_be(:unauth_user) { create(:user) } - let_it_be(:user_project) { create(:project, creator_id: user.id, namespace: user.namespace ) } + let_it_be(:user_project) { create(:project, creator_id: user.id, namespace: user.namespace) } let_it_be(:group) { create(:group, :private) } shared_examples_for 'group and project board list issues resolver' do diff --git a/spec/graphql/resolvers/board_lists_resolver_spec.rb b/spec/graphql/resolvers/board_lists_resolver_spec.rb index 2fb7c5c4717..0f6e51ebbd0 100644 --- a/spec/graphql/resolvers/board_lists_resolver_spec.rb +++ b/spec/graphql/resolvers/board_lists_resolver_spec.rb @@ -8,7 +8,7 @@ RSpec.describe Resolvers::BoardListsResolver do let_it_be(:user) { create(:user) } let_it_be(:guest) { create(:user) } let_it_be(:unauth_user) { create(:user) } - let_it_be(:project) { create(:project, creator_id: user.id, namespace: user.namespace ) } + let_it_be(:project) { create(:project, creator_id: user.id, namespace: user.namespace) } let_it_be(:group) { create(:group, :private) } let_it_be(:project_label) { create(:label, project: project, name: 'Development') } let_it_be(:group_label) { create(:group_label, group: group, name: 'Development') } @@ -65,7 +65,7 @@ RSpec.describe Resolvers::BoardListsResolver do it 'returns empty result if list is not found' do external_group = create(:group, :private) - external_board = create(:board, resource_parent: external_group ) + external_board = create(:board, resource_parent: external_group) external_label = create(:group_label, group: group) external_list = create(:list, board: external_board, label: external_label) diff --git a/spec/graphql/resolvers/board_resolver_spec.rb b/spec/graphql/resolvers/board_resolver_spec.rb index 51a13850366..e83d2cbfd1f 100644 --- a/spec/graphql/resolvers/board_resolver_spec.rb +++ b/spec/graphql/resolvers/board_resolver_spec.rb @@ -54,7 +54,7 @@ RSpec.describe Resolvers::BoardResolver do end context 'when project boards' do - let(:board_parent) { create(:project, :public, creator_id: user.id, namespace: user.namespace ) } + let(:board_parent) { create(:project, :public, creator_id: user.id, namespace: user.namespace) } it_behaves_like 'group and project boards resolver' end diff --git a/spec/graphql/resolvers/boards_resolver_spec.rb b/spec/graphql/resolvers/boards_resolver_spec.rb index 07d0902d3ba..aa78f0db188 100644 --- a/spec/graphql/resolvers/boards_resolver_spec.rb +++ b/spec/graphql/resolvers/boards_resolver_spec.rb @@ -72,7 +72,7 @@ RSpec.describe Resolvers::BoardsResolver do end context 'when project boards' do - let(:board_parent) { create(:project, :public, creator_id: user.id, namespace: user.namespace ) } + let(:board_parent) { create(:project, :public, creator_id: user.id, namespace: user.namespace) } it_behaves_like 'group and project boards resolver' end diff --git a/spec/graphql/resolvers/container_repositories_resolver_spec.rb b/spec/graphql/resolvers/container_repositories_resolver_spec.rb index 8cbb366f873..df0a98b1536 100644 --- a/spec/graphql/resolvers/container_repositories_resolver_spec.rb +++ b/spec/graphql/resolvers/container_repositories_resolver_spec.rb @@ -43,7 +43,7 @@ RSpec.describe Resolvers::ContainerRepositoriesResolver do end [:created_desc, :updated_asc, :name_desc].each do |order| - context "#{order}" do + context order.to_s do let(:args) { { sort: order } } it { is_expected.to eq([sort_repository2, sort_repository]) } @@ -51,7 +51,7 @@ RSpec.describe Resolvers::ContainerRepositoriesResolver do end [:created_asc, :updated_desc, :name_asc].each do |order| - context "#{order}" do + context order.to_s do let(:args) { { sort: order } } it { is_expected.to eq([sort_repository, sort_repository2]) } diff --git a/spec/graphql/resolvers/group_packages_resolver_spec.rb b/spec/graphql/resolvers/group_packages_resolver_spec.rb index c600f9c9f9a..639d4d93b79 100644 --- a/spec/graphql/resolvers/group_packages_resolver_spec.rb +++ b/spec/graphql/resolvers/group_packages_resolver_spec.rb @@ -21,10 +21,10 @@ RSpec.describe 'Resolvers::GroupPackagesResolver' do describe 'project_path sorting' do let_it_be(:project2) { create(:project, :public, group: group, path: 'b') } - let_it_be(:package) { create(:package, project: project ) } - let_it_be(:package2) { create(:package, project: project2 ) } - let_it_be(:package3) { create(:package, project: project ) } - let_it_be(:package4) { create(:package, project: project2 ) } + let_it_be(:package) { create(:package, project: project) } + let_it_be(:package2) { create(:package, project: project2) } + let_it_be(:package3) { create(:package, project: project) } + let_it_be(:package4) { create(:package, project: project2) } context 'filter by package_name' do let(:args) { { sort: 'PROJECT_PATH_DESC' } } diff --git a/spec/graphql/resolvers/incident_management/timeline_event_tags_resolver_spec.rb b/spec/graphql/resolvers/incident_management/timeline_event_tags_resolver_spec.rb new file mode 100644 index 00000000000..8ab34e05e52 --- /dev/null +++ b/spec/graphql/resolvers/incident_management/timeline_event_tags_resolver_spec.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Resolvers::IncidentManagement::TimelineEventTagsResolver do + include GraphqlHelpers + + let_it_be(:current_user) { create(:user) } + let_it_be(:project) { create(:project) } + let_it_be(:incident) { create(:incident, project: project) } + + let_it_be(:timeline_event) do + create(:incident_management_timeline_event, project: project, incident: incident) + end + + let_it_be(:timeline_event_with_no_tags) do + create(:incident_management_timeline_event, project: project, incident: incident) + end + + let_it_be(:timeline_event_tag) do + create(:incident_management_timeline_event_tag, project: project) + end + + let_it_be(:timeline_event_tag2) do + create(:incident_management_timeline_event_tag, project: project, name: 'Test tag 2') + end + + let_it_be(:timeline_event_tag_link) do + create(:incident_management_timeline_event_tag_link, + timeline_event: timeline_event, + timeline_event_tag: timeline_event_tag) + end + + let(:resolver) { described_class } + + subject(:resolved_timeline_event_tags) do + sync(resolve_timeline_event_tags(timeline_event, current_user: current_user).to_a) + end + + before do + project.add_guest(current_user) + end + + specify do + expect(resolver).to have_nullable_graphql_type( + Types::IncidentManagement::TimelineEventTagType.connection_type + ) + end + + it 'returns timeline event tags', :aggregate_failures do + expect(resolved_timeline_event_tags.length).to eq(1) + expect(resolved_timeline_event_tags.first).to be_a(::IncidentManagement::TimelineEventTag) + end + + context 'when timeline event is nil' do + subject(:resolved_timeline_event_tags) do + sync(resolve_timeline_event_tags(nil, current_user: current_user).to_a) + end + + it 'returns no timeline event tags' do + expect(resolved_timeline_event_tags).to be_empty + end + end + + context 'when there is no timeline event tag link' do + subject(:resolved_timeline_event_tags) do + sync(resolve_timeline_event_tags(timeline_event_with_no_tags, current_user: current_user).to_a) + end + + it 'returns no timeline event tags' do + expect(resolved_timeline_event_tags).to be_empty + end + end + + context 'when user does not have permissions' do + let(:non_member) { create(:user) } + + subject(:resolved_timeline_event_tags) do + sync(resolve_timeline_event_tags(timeline_event, current_user: non_member).to_a) + end + + it 'returns no timeline event tags' do + expect(resolved_timeline_event_tags).to be_empty + end + end + + private + + def resolve_timeline_event_tags(obj, context = { current_user: current_user }) + resolve(resolver, obj: obj, args: {}, ctx: context, arg_style: :internal_prepared) + end +end diff --git a/spec/graphql/resolvers/issues_resolver_spec.rb b/spec/graphql/resolvers/project_issues_resolver_spec.rb index a74b2a3f18c..b2796ad9b18 100644 --- a/spec/graphql/resolvers/issues_resolver_spec.rb +++ b/spec/graphql/resolvers/project_issues_resolver_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Resolvers::IssuesResolver do +RSpec.describe Resolvers::ProjectIssuesResolver do include GraphqlHelpers let_it_be(:current_user) { create(:user) } @@ -87,7 +87,7 @@ RSpec.describe Resolvers::IssuesResolver do end end - context 'negated filtering' do + context 'when using negated filters' do it 'returns issues matching the searched title after applying a negated filter' do expect(resolve_issues(milestone_title: ['past milestone'], not: { milestone_wildcard_id: wildcard_upcoming })).to contain_exactly(issue6) end @@ -252,7 +252,7 @@ RSpec.describe Resolvers::IssuesResolver do end end - context 'filtering by reaction emoji' do + context 'when filtering by reaction emoji' do let_it_be(:downvoted_issue) { create(:issue, project: project) } let_it_be(:downvote_award) { create(:award_emoji, :downvote, user: current_user, awardable: downvoted_issue) } @@ -273,7 +273,7 @@ RSpec.describe Resolvers::IssuesResolver do end end - context 'confidential issues' do + context 'when listing confidential issues' do let_it_be(:confidential_issue1) { create(:issue, project: project, confidential: true) } let_it_be(:confidential_issue2) { create(:issue, project: other_project, confidential: true) } @@ -375,13 +375,13 @@ RSpec.describe Resolvers::IssuesResolver do create(:issue_customer_relations_contact, issue: crm_issue3, contact: contact3) end - context 'contact' do + context 'when filtering by contact' do it 'returns only the issues for the contact' do expect(resolve_issues({ crm_contact_id: contact1.id })).to contain_exactly(crm_issue1) end end - context 'organization' do + context 'when filtering by organization' do it 'returns only the issues for the contact' do expect(resolve_issues({ crm_organization_id: organization.id })).to contain_exactly(crm_issue1, crm_issue2) end diff --git a/spec/graphql/resolvers/projects_resolver_spec.rb b/spec/graphql/resolvers/projects_resolver_spec.rb index 453fafb9590..77507474170 100644 --- a/spec/graphql/resolvers/projects_resolver_spec.rb +++ b/spec/graphql/resolvers/projects_resolver_spec.rb @@ -142,7 +142,7 @@ RSpec.describe Resolvers::ProjectsResolver do context 'when no sort is provided' do it 'returns projects in descending order by id' do - is_expected.to match_array((visible_projecs + named_projects).sort_by { |p| p[:id] }.reverse ) + is_expected.to match_array((visible_projecs + named_projects).sort_by { |p| p[:id] }.reverse) end end end diff --git a/spec/graphql/resolvers/recent_boards_resolver_spec.rb b/spec/graphql/resolvers/recent_boards_resolver_spec.rb index 1afdcd42b4f..059e4a538fe 100644 --- a/spec/graphql/resolvers/recent_boards_resolver_spec.rb +++ b/spec/graphql/resolvers/recent_boards_resolver_spec.rb @@ -53,7 +53,7 @@ RSpec.describe Resolvers::RecentBoardsResolver do end context 'when project boards' do - let_it_be(:board_parent) { create(:project, :public, creator_id: user.id, namespace: user.namespace ) } + let_it_be(:board_parent) { create(:project, :public, creator_id: user.id, namespace: user.namespace) } it_behaves_like 'group and project recent boards resolver' end diff --git a/spec/graphql/resolvers/users_resolver_spec.rb b/spec/graphql/resolvers/users_resolver_spec.rb index dda15303676..2ae1b53c40f 100644 --- a/spec/graphql/resolvers/users_resolver_spec.rb +++ b/spec/graphql/resolvers/users_resolver_spec.rb @@ -23,7 +23,7 @@ RSpec.describe Resolvers::UsersResolver do context 'when both ids and usernames are passed ' do it 'generates an error' do expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ArgumentError) do - resolve_users( args: { ids: [user1.to_global_id.to_s], usernames: [user1.username] } ) + resolve_users(args: { ids: [user1.to_global_id.to_s], usernames: [user1.username] }) end end end @@ -31,7 +31,7 @@ RSpec.describe Resolvers::UsersResolver do context 'when a set of IDs is passed' do it 'returns those users' do expect( - resolve_users( args: { ids: [user1.to_global_id.to_s, user2.to_global_id.to_s] } ) + resolve_users(args: { ids: [user1.to_global_id.to_s, user2.to_global_id.to_s] }) ).to contain_exactly(user1, user2) end end @@ -39,7 +39,7 @@ RSpec.describe Resolvers::UsersResolver do context 'when a set of usernames is passed' do it 'returns those users' do expect( - resolve_users( args: { usernames: [user1.username, user2.username] } ) + resolve_users(args: { usernames: [user1.username, user2.username] }) ).to contain_exactly(user1, user2) end end @@ -49,16 +49,16 @@ RSpec.describe Resolvers::UsersResolver do it 'returns only admins' do expect( - resolve_users( args: { admins: true }, ctx: { current_user: admin_user } ) + resolve_users(args: { admins: true }, ctx: { current_user: admin_user }) ).to contain_exactly(admin_user) end end context 'when a search term is passed' do it 'returns all users who match', :aggregate_failures do - expect(resolve_users( args: { search: "some" } )).to contain_exactly(user1, user2) - expect(resolve_users( args: { search: "123784" } )).to contain_exactly(user2) - expect(resolve_users( args: { search: "someperson" } )).to contain_exactly(user1) + expect(resolve_users(args: { search: "some" })).to contain_exactly(user1, user2) + expect(resolve_users(args: { search: "123784" })).to contain_exactly(user2) + expect(resolve_users(args: { search: "someperson" })).to contain_exactly(user1) end end diff --git a/spec/graphql/resolvers/work_item_resolver_spec.rb b/spec/graphql/resolvers/work_item_resolver_spec.rb index c44ed395102..dacc6ac11d8 100644 --- a/spec/graphql/resolvers/work_item_resolver_spec.rb +++ b/spec/graphql/resolvers/work_item_resolver_spec.rb @@ -27,14 +27,6 @@ RSpec.describe Resolvers::WorkItemResolver do end end end - - context 'when the work_items feature flag is disabled' do - before do - stub_feature_flags(work_items: false) - end - - it { is_expected.to be_nil } - end end private diff --git a/spec/graphql/resolvers/work_items/types_resolver_spec.rb b/spec/graphql/resolvers/work_items/types_resolver_spec.rb index 868f4566ad6..5121a105523 100644 --- a/spec/graphql/resolvers/work_items/types_resolver_spec.rb +++ b/spec/graphql/resolvers/work_items/types_resolver_spec.rb @@ -29,16 +29,6 @@ RSpec.describe Resolvers::WorkItems::TypesResolver do expect(result.to_a).to contain_exactly(WorkItems::Type.default_by_type(:task)) end end - - context 'when work_items feature flag is disabled' do - before do - stub_feature_flags(work_items: false) - end - - it 'returns nil' do - expect(result).to be_nil - end - end end describe '#resolve' do @@ -53,15 +43,5 @@ RSpec.describe Resolvers::WorkItems::TypesResolver do it_behaves_like 'a work item type resolver' end - - context 'when parent is not a group or project' do - let(:object) { 'not a project/group' } - - it 'returns nil because of feature flag check' do - result = resolve(described_class, obj: object, args: {}) - - expect(result).to be_nil - end - end end end |