summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorIgor Drozdov <idrozdov@gitlab.com>2019-07-15 13:02:42 +0300
committerIgor Drozdov <idrozdov@gitlab.com>2019-07-16 13:46:01 +0300
commit878a6bcc5f76119350619ce4667527774097ae79 (patch)
tree736f880b26d181fd7a5d24d59d38cf7ec14ec190 /spec
parent2b5ec95feba38b39689e8ae4ad60a3bcefa557a2 (diff)
downloadgitlab-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.rb16
-rw-r--r--spec/lib/gitlab/graphql/representation/submodule_tree_entry_spec.rb5
-rw-r--r--spec/serializers/diff_file_base_entity_spec.rb3
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)