diff --git a/spec/graphql/resolvers/alert_management/alert_resolver_spec.rb b/spec/graphql/resolvers/alert_management/alert_resolver_spec.rb index 14ebe85d80e..618735837e8 100644 --- a/spec/graphql/resolvers/alert_management/alert_resolver_spec.rb +++ b/spec/graphql/resolvers/alert_management/alert_resolver_spec.rb @@ -68,6 +68,6 @@ RSpec.describe Resolvers::AlertManagement::AlertResolver do private def resolve_alerts(args = {}, context = { current_user: current_user }) - resolve(described_class, obj: project, args: args, ctx: context) + resolve(described_class, obj: project, args: args, ctx: context, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/board_list_issues_resolver_spec.rb b/spec/graphql/resolvers/board_list_issues_resolver_spec.rb index 392385d2a30..ab1f19abaad 100644 --- a/spec/graphql/resolvers/board_list_issues_resolver_spec.rb +++ b/spec/graphql/resolvers/board_list_issues_resolver_spec.rb @@ -128,6 +128,6 @@ RSpec.describe Resolvers::BoardListIssuesResolver do end def resolve_board_list_issues(args: {}, current_user: user) - resolve(described_class, obj: list, args: args, ctx: { current_user: current_user }) + resolve(described_class, obj: list, args: args, ctx: { current_user: current_user }, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/board_lists_resolver_spec.rb b/spec/graphql/resolvers/board_lists_resolver_spec.rb index 7a1d8590546..c882ad7c818 100644 --- a/spec/graphql/resolvers/board_lists_resolver_spec.rb +++ b/spec/graphql/resolvers/board_lists_resolver_spec.rb @@ -100,6 +100,8 @@ RSpec.describe Resolvers::BoardListsResolver do end def resolve_board_lists(args: {}, current_user: user) - resolve(described_class, obj: board, args: args, ctx: { current_user: current_user }) + resolve(described_class, obj: board, args: args, ctx: { current_user: current_user }, + arg_style: :internal + ) end end diff --git a/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb b/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb index 89a2437a189..f99f48f5b07 100644 --- a/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb +++ b/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb @@ -6,7 +6,10 @@ RSpec.describe Resolvers::Ci::GroupRunnersResolver do include GraphqlHelpers describe '#resolve' do - subject { resolve(described_class, obj: obj, ctx: { current_user: user }, args: args) } + subject do + resolve(described_class, obj: obj, ctx: { current_user: user }, args: args, + arg_style: :internal) + end include_context 'runners resolver setup' diff --git a/spec/graphql/resolvers/ci/jobs_resolver_spec.rb b/spec/graphql/resolvers/ci/jobs_resolver_spec.rb index 1b69bf7f63a..6c228861ddf 100644 --- a/spec/graphql/resolvers/ci/jobs_resolver_spec.rb +++ b/spec/graphql/resolvers/ci/jobs_resolver_spec.rb @@ -19,7 +19,7 @@ RSpec.describe Resolvers::Ci::JobsResolver do describe '#resolve' do context 'when security_report_types is empty' do it "returns all of the pipeline's jobs" do - jobs = resolve(described_class, obj: pipeline) + jobs = resolve(described_class, obj: pipeline, arg_style: :internal) expect(jobs).to contain_exactly( have_attributes(name: 'Normal job'), @@ -37,7 +37,8 @@ RSpec.describe Resolvers::Ci::JobsResolver do ::Types::Security::ReportTypeEnum.values['SAST'].value, ::Types::Security::ReportTypeEnum.values['DAST'].value ] - jobs = resolve(described_class, obj: pipeline, args: { security_report_types: report_types }) + jobs = resolve(described_class, obj: pipeline, args: { security_report_types: report_types }, + arg_style: :internal) expect(jobs).to contain_exactly( have_attributes(name: 'DAST job'), @@ -48,7 +49,7 @@ RSpec.describe Resolvers::Ci::JobsResolver do context 'when a job has tags' do it "returns jobs with tags when applicable" do - jobs = resolve(described_class, obj: pipeline) + jobs = resolve(described_class, obj: pipeline, arg_style: :internal) expect(jobs).to contain_exactly( have_attributes(tag_list: []), have_attributes(tag_list: []), diff --git a/spec/graphql/resolvers/ci/runners_resolver_spec.rb b/spec/graphql/resolvers/ci/runners_resolver_spec.rb index 9251fbf24d9..b1f5f7b3e43 100644 --- a/spec/graphql/resolvers/ci/runners_resolver_spec.rb +++ b/spec/graphql/resolvers/ci/runners_resolver_spec.rb @@ -9,7 +9,10 @@ RSpec.describe Resolvers::Ci::RunnersResolver do let(:obj) { nil } let(:args) { {} } - subject { resolve(described_class, obj: obj, ctx: { current_user: user }, args: args) } + subject do + resolve(described_class, obj: obj, ctx: { current_user: user }, args: args, + arg_style: :internal) + end include_context 'runners resolver setup' diff --git a/spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb b/spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb index 852aaf66201..892ab53a53e 100644 --- a/spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb +++ b/spec/graphql/resolvers/concerns/caching_array_resolver_spec.rb @@ -79,7 +79,7 @@ RSpec.describe ::CachingArrayResolver do expect(User).to receive(:from_union).twice.and_call_original results = users.in_groups_of(2, false).map do |users| - resolve(resolver, args: { username: users.map(&:username) }, schema: schema) + resolve(resolver, args: { username: users.map(&:username) }, schema: schema, arg_style: :internal) end expect(results.flat_map(&method(:force))).to match_array(users) @@ -208,6 +208,6 @@ RSpec.describe ::CachingArrayResolver do args = { is_admin: admin } opts = resolver.field_options allow(resolver).to receive(:field_options).and_return(opts.merge(max_page_size: max_page_size)) - resolve(resolver, args: args, ctx: query_context, schema: schema) + resolve(resolver, args: args, ctx: query_context, schema: schema, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/container_repositories_resolver_spec.rb b/spec/graphql/resolvers/container_repositories_resolver_spec.rb index a17d2a7b0d5..d7aa761320f 100644 --- a/spec/graphql/resolvers/container_repositories_resolver_spec.rb +++ b/spec/graphql/resolvers/container_repositories_resolver_spec.rb @@ -15,7 +15,10 @@ RSpec.describe Resolvers::ContainerRepositoriesResolver do describe '#resolve' do let(:object) { project } - subject { resolve(described_class, ctx: { current_user: user }, args: args, obj: object) } + subject do + resolve(described_class, ctx: { current_user: user }, args: args, obj: object, + arg_style: :internal) + end shared_examples 'returning container repositories' do it { is_expected.to contain_exactly(container_repositories) } diff --git a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb index 4e7ea253c87..9747f663759 100644 --- a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb +++ b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb @@ -12,7 +12,10 @@ RSpec.describe Resolvers::ContainerRepositoryTagsResolver do let(:args) { { sort: nil } } describe '#resolve' do - let(:resolver) { resolve(described_class, ctx: { current_user: user }, obj: repository, args: args) } + let(:resolver) do + resolve(described_class, ctx: { current_user: user }, obj: repository, args: args, + arg_style: :internal) + end before do stub_container_registry_config(enabled: true) diff --git a/spec/graphql/resolvers/group_milestones_resolver_spec.rb b/spec/graphql/resolvers/group_milestones_resolver_spec.rb index 3d0c4a9d7cb..a32a031a88f 100644 --- a/spec/graphql/resolvers/group_milestones_resolver_spec.rb +++ b/spec/graphql/resolvers/group_milestones_resolver_spec.rb @@ -10,7 +10,7 @@ RSpec.describe Resolvers::GroupMilestonesResolver do let_it_be(:current_user) { create(:user) } def resolve_group_milestones(args = {}, context = { current_user: current_user }) - resolve(described_class, obj: group, args: args, ctx: context) + resolve(described_class, obj: group, args: args, ctx: context, arg_style: :internal) end let_it_be(:now) { Time.now } diff --git a/spec/graphql/resolvers/group_packages_resolver_spec.rb b/spec/graphql/resolvers/group_packages_resolver_spec.rb index eba3a5f2de8..c600f9c9f9a 100644 --- a/spec/graphql/resolvers/group_packages_resolver_spec.rb +++ b/spec/graphql/resolvers/group_packages_resolver_spec.rb @@ -2,15 +2,16 @@ require 'spec_helper' -RSpec.describe Resolvers::GroupPackagesResolver do +RSpec.describe 'Resolvers::GroupPackagesResolver' do include GraphqlHelpers + let_it_be(:described_class) { Resolvers::GroupPackagesResolver } let_it_be(:user) { create(:user) } let_it_be(:group) { create(:group, :public) } let_it_be(:project) { create(:project, :public, group: group, path: 'a') } let(:args) do - { sort: :created_desc } + { sort: 'CREATED_DESC' } end describe '#resolve' do @@ -26,13 +27,13 @@ RSpec.describe Resolvers::GroupPackagesResolver do let_it_be(:package4) { create(:package, project: project2 ) } context 'filter by package_name' do - let(:args) { { sort: :project_path_desc } } + let(:args) { { sort: 'PROJECT_PATH_DESC' } } it { is_expected.to eq([package4, package2, package3, package]) } end context 'filter by package_type' do - let(:args) { { sort: :project_path_asc } } + let(:args) { { sort: 'PROJECT_PATH_ASC' } } it { is_expected.to eq([package, package3, package2, package4]) } end diff --git a/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb b/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb index bd41af533ce..6604141abfe 100644 --- a/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb +++ b/spec/graphql/resolvers/incident_management/timeline_events_resolver_spec.rb @@ -66,6 +66,6 @@ RSpec.describe 'Resolvers::IncidentManagement::TimelineEventsResolver' do private def resolve_timeline_events(args = {}, context = { current_user: current_user }) - resolve(resolver, obj: incident, args: args, ctx: context, arg_style: :internal_prepared) + resolve(resolver, obj: incident, args: args, ctx: context) end end diff --git a/spec/graphql/resolvers/issues_resolver_spec.rb b/spec/graphql/resolvers/issues_resolver_spec.rb index 707bd7251e5..a5b5a8e4f72 100644 --- a/spec/graphql/resolvers/issues_resolver_spec.rb +++ b/spec/graphql/resolvers/issues_resolver_spec.rb @@ -701,6 +701,6 @@ RSpec.describe Resolvers::IssuesResolver do end def resolve_issues(args = {}, context = { current_user: current_user }) - resolve(described_class, obj: project, args: args, ctx: context) + resolve(described_class, obj: project, args: args, ctx: context, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/merge_requests_resolver_spec.rb b/spec/graphql/resolvers/merge_requests_resolver_spec.rb index e8247b7b488..ab3d7edc6bd 100644 --- a/spec/graphql/resolvers/merge_requests_resolver_spec.rb +++ b/spec/graphql/resolvers/merge_requests_resolver_spec.rb @@ -411,6 +411,6 @@ RSpec.describe Resolvers::MergeRequestsResolver do end def resolve_mr(project, resolver: described_class, user: current_user, **args) - resolve(resolver, obj: project, args: args, ctx: { current_user: user }) + resolve(resolver, obj: project, args: args, ctx: { current_user: user }, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/namespace_projects_resolver_spec.rb b/spec/graphql/resolvers/namespace_projects_resolver_spec.rb index eb4d0ab6f37..78dd5173449 100644 --- a/spec/graphql/resolvers/namespace_projects_resolver_spec.rb +++ b/spec/graphql/resolvers/namespace_projects_resolver_spec.rb @@ -152,6 +152,6 @@ RSpec.describe Resolvers::NamespaceProjectsResolver do end def resolve_projects(args = { include_subgroups: false, sort: nil, search: nil, ids: nil }, context = { current_user: current_user }) - resolve(described_class, obj: namespace, args: args, ctx: context) + resolve(described_class, obj: namespace, args: args, ctx: context, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/packages_base_resolver_spec.rb b/spec/graphql/resolvers/packages_base_resolver_spec.rb index 8f9865c3785..7766fdd4994 100644 --- a/spec/graphql/resolvers/packages_base_resolver_spec.rb +++ b/spec/graphql/resolvers/packages_base_resolver_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Resolvers::PackagesBaseResolver do include GraphqlHelpers describe '#resolve' do - subject { resolve(described_class) } + subject { resolve(described_class, arg_style: :internal) } it 'throws an error' do expect { subject }.to raise_error(NotImplementedError) diff --git a/spec/graphql/resolvers/project_milestones_resolver_spec.rb b/spec/graphql/resolvers/project_milestones_resolver_spec.rb index d99a3a40a6c..ad1190e3df7 100644 --- a/spec/graphql/resolvers/project_milestones_resolver_spec.rb +++ b/spec/graphql/resolvers/project_milestones_resolver_spec.rb @@ -2,12 +2,15 @@ require 'spec_helper' -RSpec.describe Resolvers::ProjectMilestonesResolver do +RSpec.describe 'Resolvers::ProjectMilestonesResolver' do include GraphqlHelpers describe '#resolve' do + let_it_be(:described_class) { Resolvers::ProjectMilestonesResolver } let_it_be(:project) { create(:project, :private) } let_it_be(:current_user) { create(:user) } + let_it_be(:now) { Time.now } + let_it_be(:now_date) { now.to_date } before_all do project.add_developer(current_user) @@ -25,7 +28,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do it 'calls MilestonesFinder to retrieve all milestones' do expect(MilestonesFinder).to receive(:new) - .with(args(project_ids: project.id, state: 'all')) + .with(args(project_ids: project.id, state: 'all', sort: :due_date_asc)) .and_call_original resolve_project_milestones @@ -42,7 +45,8 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do it 'calls MilestonesFinder with correct parameters' do expect(MilestonesFinder).to receive(:new) - .with(args(project_ids: project.id, group_ids: contain_exactly(group, parent_group), state: 'all')) + .with(args(project_ids: project.id, group_ids: contain_exactly(group, parent_group), + state: 'all', sort: :due_date_asc)) .and_call_original resolve_project_milestones(include_ancestors: true) @@ -54,7 +58,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do milestone = create(:milestone, project: project) expect(MilestonesFinder).to receive(:new) - .with(args(ids: [milestone.id.to_s], project_ids: project.id, state: 'all')) + .with(args(ids: [milestone.id.to_s], project_ids: project.id, state: 'all', sort: :due_date_asc)) .and_call_original resolve_project_milestones(ids: [milestone.to_global_id]) @@ -64,7 +68,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'by state' do it 'calls MilestonesFinder with correct parameters' do expect(MilestonesFinder).to receive(:new) - .with(args(project_ids: project.id, state: 'closed')) + .with(args(project_ids: project.id, state: 'closed', sort: :due_date_asc)) .and_call_original resolve_project_milestones(state: 'closed') @@ -74,13 +78,13 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'by sort' do it 'calls MilestonesFinder with correct parameters' do expect(MilestonesFinder).to receive(:new) - .with(args(project_ids: project.id, state: 'all', sort: :due_date_desc)) + .with(args(project_ids: project.id, state: 'all', sort: :due_date_asc)) .and_call_original - resolve_project_milestones(sort: :due_date_desc) + resolve_project_milestones(sort: 'DUE_DATE_ASC') end - %i[expired_last_due_date_asc expired_last_due_date_desc].each do |sort_by| + %w[EXPIRED_LAST_DUE_DATE_ASC EXPIRED_LAST_DUE_DATE_DESC].each do |sort_by| it "uses offset-pagination when sorting by #{sort_by}" do resolved = resolve_project_milestones(sort: sort_by) @@ -92,11 +96,12 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'by timeframe' do context 'when start_date and end_date are present' do it 'calls MilestonesFinder with correct parameters' do - start_date = Time.now - end_date = Time.now + 5.days + start_date = now + end_date = now + 5.days expect(MilestonesFinder).to receive(:new) - .with(args(project_ids: project.id, state: 'all', start_date: start_date, end_date: end_date)) + .with(args(project_ids: project.id, state: 'all', + start_date: start_date, end_date: end_date, sort: :due_date_asc)) .and_call_original resolve_project_milestones(start_date: start_date, end_date: end_date) @@ -105,7 +110,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'when start date is after end_date' do it 'generates an error' do expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ArgumentError, 'startDate is after endDate') do - resolve_project_milestones(start_date: Time.now, end_date: Time.now - 2.days) + resolve_project_milestones(start_date: now, end_date: now - 2.days) end end end @@ -114,7 +119,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'when only start_date is present' do it 'generates an error' do expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ArgumentError, /Both startDate and endDate/) do - resolve_project_milestones(start_date: Time.now) + resolve_project_milestones(start_date: now) end end end @@ -122,18 +127,19 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'when only end_date is present' do it 'generates an error' do expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ArgumentError, /Both startDate and endDate/) do - resolve_project_milestones(end_date: Time.now) + resolve_project_milestones(end_date: now) end end end context 'when passing a timeframe' do it 'calls MilestonesFinder with correct parameters' do - start_date = Time.now - end_date = Time.now + 5.days + start_date = now_date + end_date = now_date + 5.days expect(MilestonesFinder).to receive(:new) - .with(args(project_ids: project.id, state: 'all', start_date: start_date, end_date: end_date)) + .with(args(project_ids: project.id, state: 'all', + sort: :due_date_asc, start_date: start_date, end_date: end_date)) .and_call_original resolve_project_milestones(timeframe: { start: start_date, end: end_date }) @@ -144,7 +150,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'when title is present' do it 'calls MilestonesFinder with correct parameters' do expect(MilestonesFinder).to receive(:new) - .with(args(title: '13.5', state: 'all', project_ids: project.id)) + .with(args(title: '13.5', state: 'all', sort: :due_date_asc, project_ids: project.id)) .and_call_original resolve_project_milestones(title: '13.5') @@ -154,7 +160,7 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'when search_title is present' do it 'calls MilestonesFinder with correct parameters' do expect(MilestonesFinder).to receive(:new) - .with(args(search_title: '13', state: 'all', project_ids: project.id)) + .with(args(search_title: '13', state: 'all', sort: :due_date_asc, project_ids: project.id)) .and_call_original resolve_project_milestones(search_title: '13') @@ -163,10 +169,10 @@ RSpec.describe Resolvers::ProjectMilestonesResolver do context 'when containing date is present' do it 'calls MilestonesFinder with correct parameters' do - t = Time.now + t = now expect(MilestonesFinder).to receive(:new) - .with(args(containing_date: t, state: 'all', project_ids: project.id)) + .with(args(containing_date: t, state: 'all', sort: :due_date_asc, project_ids: project.id)) .and_call_original resolve_project_milestones(containing_date: t) diff --git a/spec/graphql/resolvers/project_packages_resolver_spec.rb b/spec/graphql/resolvers/project_packages_resolver_spec.rb index 66a94bd42dd..c3ce30f6ef9 100644 --- a/spec/graphql/resolvers/project_packages_resolver_spec.rb +++ b/spec/graphql/resolvers/project_packages_resolver_spec.rb @@ -2,18 +2,22 @@ require 'spec_helper' -RSpec.describe Resolvers::ProjectPackagesResolver do +RSpec.describe 'Resolvers::ProjectPackagesResolver' do include GraphqlHelpers + let_it_be(:described_class) { Resolvers::ProjectPackagesResolver } let_it_be(:user) { create(:user) } let_it_be_with_reload(:project) { create(:project, :public) } let(:args) do - { sort: :created_desc } + { sort: 'CREATED_DESC' } end describe '#resolve' do - subject { resolve(described_class, ctx: { current_user: user }, obj: project, args: args).to_a } + subject do + resolve(described_class, ctx: { current_user: user }, obj: project, args: args) + .to_a + end it_behaves_like 'group and projects packages resolver' end diff --git a/spec/graphql/resolvers/releases_resolver_spec.rb b/spec/graphql/resolvers/releases_resolver_spec.rb index 89623be891f..6ba9a6c33a1 100644 --- a/spec/graphql/resolvers/releases_resolver_spec.rb +++ b/spec/graphql/resolvers/releases_resolver_spec.rb @@ -87,6 +87,6 @@ RSpec.describe Resolvers::ReleasesResolver do def resolve_releases context = { current_user: current_user } - resolve(described_class, obj: project, args: args, ctx: context) + resolve(described_class, obj: project, args: args, ctx: context, arg_style: :internal) end end diff --git a/spec/graphql/resolvers/users/groups_resolver_spec.rb b/spec/graphql/resolvers/users/groups_resolver_spec.rb index 5ac7aac4898..bbe9b6371cf 100644 --- a/spec/graphql/resolvers/users/groups_resolver_spec.rb +++ b/spec/graphql/resolvers/users/groups_resolver_spec.rb @@ -93,6 +93,6 @@ RSpec.describe Resolvers::Users::GroupsResolver do end def resolve_groups(args:, current_user:, obj:) - resolve(described_class, args: args, ctx: { current_user: current_user }, obj: obj)&.items + resolve(described_class, args: args, ctx: { current_user: current_user }, obj: obj, arg_style: :internal)&.items end end diff --git a/spec/graphql/resolvers/work_items_resolver_spec.rb b/spec/graphql/resolvers/work_items_resolver_spec.rb index df79cd74694..29eac0ab46e 100644 --- a/spec/graphql/resolvers/work_items_resolver_spec.rb +++ b/spec/graphql/resolvers/work_items_resolver_spec.rb @@ -185,6 +185,6 @@ RSpec.describe Resolvers::WorkItemsResolver do end def resolve_items(args = {}, context = { current_user: current_user }) - resolve(described_class, obj: project, args: args, ctx: context) + resolve(described_class, obj: project, args: args, ctx: context, arg_style: :internal) end end diff --git a/spec/graphql/types/ci/detailed_status_type_spec.rb b/spec/graphql/types/ci/detailed_status_type_spec.rb index 0bcb58202ad..0c05227aec2 100644 --- a/spec/graphql/types/ci/detailed_status_type_spec.rb +++ b/spec/graphql/types/ci/detailed_status_type_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Types::Ci::DetailedStatusType do status = stage.detailed_status(stage.pipeline.user) expected_id = "#{status.id}-#{stage.id}" - expect(resolve_field('id', status, extras: { parent: stage })).to eq(expected_id) + expect(resolve_field('id', status, extras: { parent: stage }, arg_style: :internal)).to eq(expected_id) end end @@ -36,7 +36,7 @@ RSpec.describe Types::Ci::DetailedStatusType do title: status.action_title } - expect(resolve_field('action', status)).to eq(expected_status) + expect(resolve_field('action', status, arg_style: :internal)).to eq(expected_status) end end end diff --git a/spec/graphql/types/ci/status_action_type_spec.rb b/spec/graphql/types/ci/status_action_type_spec.rb index 1ea31416ef5..4c467bf240e 100644 --- a/spec/graphql/types/ci/status_action_type_spec.rb +++ b/spec/graphql/types/ci/status_action_type_spec.rb @@ -27,7 +27,7 @@ RSpec.describe Types::Ci::StatusActionType do expected_id = "#{stage.class.name}-#{status.id}" - expect(resolve_field('id', status, extras: { parent: status })).to eq(expected_id) + expect(resolve_field('id', status, extras: { parent: status }, arg_style: :internal)).to eq(expected_id) end end end diff --git a/spec/support/helpers/graphql_helpers.rb b/spec/support/helpers/graphql_helpers.rb index 10a16e00103..d0a1941817a 100644 --- a/spec/support/helpers/graphql_helpers.rb +++ b/spec/support/helpers/graphql_helpers.rb @@ -72,7 +72,7 @@ module GraphqlHelpers schema: GitlabSchema, # [GraphQL::Schema] Schema to use during execution. parent: :not_given, # A GraphQL query node to be passed as the `:parent` extra. lookahead: :not_given, # A GraphQL lookahead object to be passed as the `:lookahead` extra. - arg_style: :internal # Args are in internal format, rather than client/external format + arg_style: :internal_prepared # Args are in internal format, but should use more rigorous processing ) # All resolution goes through fields, so we need to create one here that # uses our resolver. Thankfully, apart from the field name, resolvers @@ -130,7 +130,7 @@ module GraphqlHelpers current_user: :not_given, # The current user (specified explicitly, overrides ctx[:current_user]) schema: GitlabSchema, # A specific schema instance object_type: described_class, # The `BaseObject` type this field belongs to - arg_style: :internal # Args are in internal format, rather than client/external format + arg_style: :internal_prepared # Args are in internal format, but should use more rigorous processing ) field = to_base_field(field, object_type) ctx[:current_user] = current_user unless current_user == :not_given @@ -143,9 +143,6 @@ module GraphqlHelpers parent = object_type.authorized_new(object, query_ctx) raise UnauthorizedObject unless parent - # mutations already working with :internal_prepared - arg_style = :internal_prepared if args[:input] && arg_style == :internal - # we enable the request store so we can track gitaly calls. ::Gitlab::WithRequestStore.with_request_store do prepared_args = case arg_style @@ -165,7 +162,7 @@ module GraphqlHelpers # rubocop:enable Metrics/ParameterLists # Pros: - # - Most arguments we use in specs, which are already in an "internal" state, work + # - Original way we handled arguments # # Cons: # - the `prepare` method of a type is not called. Whether as a proc or as a method @@ -178,8 +175,8 @@ module GraphqlHelpers # Pros: # - Allows the use of ruby types, without having to pass in strings - # - All args are converted into strings just like if it was called from a client, - # so stronger arg verification + # - All args are converted into strings just like if it was called from a client + # - Much stronger argument verification # # Cons: # - Some values, such as enums, would need to be changed in the specs to use the diff --git a/spec/support/shared_examples/graphql/members_shared_examples.rb b/spec/support/shared_examples/graphql/members_shared_examples.rb index 8e9e22f4359..110706c730b 100644 --- a/spec/support/shared_examples/graphql/members_shared_examples.rb +++ b/spec/support/shared_examples/graphql/members_shared_examples.rb @@ -39,7 +39,8 @@ 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 }) + resolve(described_class, obj: resource, args: base_args.merge(args), + ctx: { current_user: user_4 }, arg_style: :internal) end describe '#resolve' do @@ -73,7 +74,8 @@ 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 }) + 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/resolvers/packages_resolvers_shared_examples.rb b/spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb index da8562161e7..3017f62a7c9 100644 --- a/spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb +++ b/spec/support/shared_examples/graphql/resolvers/packages_resolvers_shared_examples.rb @@ -24,7 +24,7 @@ RSpec.shared_examples 'group and projects packages resolver' do create(:maven_package, name: 'baz', project: project, created_at: 1.minute.ago, version: nil) end - [:created_desc, :name_desc, :version_desc, :type_asc].each do |order| + %w[CREATED_DESC NAME_DESC VERSION_DESC TYPE_ASC].each do |order| context "#{order}" do let(:args) { { sort: order } } @@ -32,7 +32,7 @@ RSpec.shared_examples 'group and projects packages resolver' do end end - [:created_asc, :name_asc, :version_asc, :type_desc].each do |order| + %w[CREATED_ASC NAME_ASC VERSION_ASC TYPE_DESC].each do |order| context "#{order}" do let(:args) { { sort: order } } @@ -41,25 +41,25 @@ RSpec.shared_examples 'group and projects packages resolver' do end context 'filter by package_name' do - let(:args) { { package_name: 'bar', sort: :created_desc } } + let(:args) { { package_name: 'bar', sort: 'CREATED_DESC' } } it { is_expected.to eq([conan_package]) } end context 'filter by package_type' do - let(:args) { { package_type: 'conan', sort: :created_desc } } + let(:args) { { package_type: 'conan', sort: 'CREATED_DESC' } } it { is_expected.to eq([conan_package]) } end context 'filter by status' do - let(:args) { { status: 'error', sort: :created_desc } } + let(:args) { { status: 'error', sort: 'CREATED_DESC' } } it { is_expected.to eq([maven_package]) } end context 'include_versionless' do - let(:args) { { include_versionless: true, sort: :created_desc } } + let(:args) { { include_versionless: true, sort: 'CREATED_DESC' } } it { is_expected.to include(repository3) } end