diff options
author | Igor Drozdov <idrozdov@gitlab.com> | 2019-07-15 13:02:42 +0300 |
---|---|---|
committer | Igor Drozdov <idrozdov@gitlab.com> | 2019-07-16 13:46:01 +0300 |
commit | 878a6bcc5f76119350619ce4667527774097ae79 (patch) | |
tree | 736f880b26d181fd7a5d24d59d38cf7ec14ec190 /spec | |
parent | 2b5ec95feba38b39689e8ae4ad60a3bcefa557a2 (diff) | |
download | gitlab-ce-id-submodule-url-graphql.tar.gz |
Reduce the number of submodule calls for diff filesid-submodule-url-graphql
Now 1 request is performed instead of 2 per submodule
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/git/repository_spec.rb | 16 | ||||
-rw-r--r-- | spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb | 5 | ||||
-rw-r--r-- | spec/serializers/diff_file_base_entity_spec.rb | 3 |
3 files changed, 21 insertions, 3 deletions
diff --git a/spec/lib/gitlab/git/repository_spec.rb b/spec/lib/gitlab/git/repository_spec.rb index a28b95e5bff..41b898df112 100644 --- a/spec/lib/gitlab/git/repository_spec.rb +++ b/spec/lib/gitlab/git/repository_spec.rb @@ -256,6 +256,22 @@ describe Gitlab::Git::Repository, :seed_helper do end end + describe '#submodule_urls_for' do + let(:ref) { 'master' } + + it 'returns url mappings for submodules' do + urls = repository.submodule_urls_for(ref) + + expect(urls).to eq({ + "deeper/nested/six" => "git://github.com/randx/six.git", + "gitlab-grack" => "https://gitlab.com/gitlab-org/gitlab-grack.git", + "gitlab-shell" => "https://github.com/gitlabhq/gitlab-shell.git", + "nested/six" => "git://github.com/randx/six.git", + "six" => "git://github.com/randx/six.git" + }) + end + end + describe '#commit_count' do it { expect(repository.commit_count("master")).to eq(25) } it { expect(repository.commit_count("feature")).to eq(9) } diff --git a/spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb b/spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb index a3ff75f17e6..28056a6085d 100644 --- a/spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb +++ b/spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb @@ -7,8 +7,10 @@ describe Gitlab::Graphql::Representation::SubmoduleTreeEntry do let(:repository) { project.repository } describe '.decorate' do + let(:submodules) { repository.tree.submodules } + it 'returns array of SubmoduleTreeEntry' do - entries = described_class.decorate(repository.tree) + entries = described_class.decorate(submodules, repository.tree) expect(entries.first).to be_a(described_class) @@ -26,4 +28,3 @@ describe Gitlab::Graphql::Representation::SubmoduleTreeEntry do end end end - diff --git a/spec/serializers/diff_file_base_entity_spec.rb b/spec/serializers/diff_file_base_entity_spec.rb index 0c434f739c9..68c5c665ed6 100644 --- a/spec/serializers/diff_file_base_entity_spec.rb +++ b/spec/serializers/diff_file_base_entity_spec.rb @@ -12,7 +12,8 @@ describe DiffFileBaseEntity do end let(:commit) { project.commit(commit_sha_with_changed_submodule) } let(:diff_file) { commit.diffs.diff_files.to_a.last } - let(:entity) { described_class.new(diff_file, request: {}).as_json } + let(:options) { { request: {}, submodule_links: Gitlab::SubmoduleLinks.new(repository) } } + let(:entity) { described_class.new(diff_file, options).as_json } it do expect(entity[:submodule]).to eq(true) |