summaryrefslogtreecommitdiff
path: root/spec/graphql/types/repository/blob_type_spec.rb
blob: 9537fca732269ac13b01bc7679385c35d6ee5d52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Types::Repository::BlobType, feature_category: :source_code_management do
  include GraphqlHelpers

  specify { expect(described_class.graphql_name).to eq('RepositoryBlob') }

  specify do
    expect(described_class).to have_graphql_fields(
      :id,
      :oid,
      :name,
      :path,
      :web_path,
      :lfs_oid,
      :mode,
      :size,
      :raw_size,
      :raw_blob,
      :raw_text_blob,
      :file_type,
      :edit_blob_path,
      :stored_externally,
      :external_storage,
      :raw_path,
      :replace_path,
      :pipeline_editor_path,
      :gitpod_blob_url,
      :find_file_path,
      :blame_path,
      :history_path,
      :permalink_path,
      :environment_formatted_external_url,
      :environment_external_url_for_route_map,
      :code_navigation_path,
      :project_blob_path_root,
      :simple_viewer,
      :rich_viewer,
      :plain_data,
      :can_modify_blob,
      :can_current_user_push_to_branch,
      :archived,
      :ide_edit_path,
      :external_storage_url,
      :fork_and_edit_path,
      :ide_fork_and_edit_path,
      :fork_and_view_path,
      :language
    ).at_least
  end

  it 'handles blobs of huge size', :aggregate_failures do
    huge_blob = Blob.new(double)
    size = 10**10
    allow(huge_blob).to receive_messages({ size: size, raw_size: size })

    expect(resolve_field(:raw_size, huge_blob)).to eq(size)
    expect(resolve_field(:size, huge_blob)).to eq(size)
  end
end