diff options
Diffstat (limited to 'spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb')
-rw-r--r-- | spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb b/spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb new file mode 100644 index 00000000000..1a7c5a4993c --- /dev/null +++ b/spec/lib/bulk_imports/groups/graphql/get_projects_query_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe BulkImports::Groups::Graphql::GetProjectsQuery do + describe '#variables' do + it 'returns valid variables based on entity information' do + tracker = create(:bulk_import_tracker) + context = BulkImports::Pipeline::Context.new(tracker) + + query = GraphQL::Query.new( + GitlabSchema, + described_class.to_s, + variables: described_class.variables(context) + ) + result = GitlabSchema.static_validator.validate(query) + + expect(result[:errors]).to be_empty + end + + context 'with invalid variables' do + it 'raises an error' do + expect { GraphQL::Query.new(GitlabSchema, described_class.to_s, variables: 'invalid') }.to raise_error(ArgumentError) + end + end + end + + describe '#data_path' do + it 'returns data path' do + expected = %w[data group projects nodes] + + expect(described_class.data_path).to eq(expected) + end + end + + describe '#page_info_path' do + it 'returns pagination information path' do + expected = %w[data group projects page_info] + + expect(described_class.page_info_path).to eq(expected) + end + end +end |