diff options
Diffstat (limited to 'spec/requests/api/graphql/project/repository/blobs_spec.rb')
-rw-r--r-- | spec/requests/api/graphql/project/repository/blobs_spec.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/requests/api/graphql/project/repository/blobs_spec.rb b/spec/requests/api/graphql/project/repository/blobs_spec.rb new file mode 100644 index 00000000000..12f6fbd793e --- /dev/null +++ b/spec/requests/api/graphql/project/repository/blobs_spec.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true +require 'spec_helper' + +RSpec.describe 'getting blobs in a project repository' do + include GraphqlHelpers + + let(:project) { create(:project, :repository) } + let(:current_user) { project.owner } + let(:paths) { ["CONTRIBUTING.md", "README.md"] } + let(:ref) { project.default_branch } + let(:fields) do + <<~QUERY + blobs(paths:#{paths.inspect}, ref:#{ref.inspect}) { + nodes { + #{all_graphql_fields_for('repository_blob'.classify)} + } + } + QUERY + end + + let(:query) do + graphql_query_for( + 'project', + { 'fullPath' => project.full_path }, + query_graphql_field('repository', {}, fields) + ) + end + + subject(:blobs) { graphql_data_at(:project, :repository, :blobs, :nodes) } + + it 'returns the blob' do + post_graphql(query, current_user: current_user) + + expect(blobs).to match_array(paths.map { |path| a_hash_including('path' => path) }) + end +end |