summaryrefslogtreecommitdiff
path: root/spec/graphql/resolvers/tree_resolver_spec.rb
diff options
context:
space:
mode:
authorMartin Hanzel <mhanzel@gitlab.com>2019-06-05 10:18:12 +0200
committerMartin Hanzel <mhanzel@gitlab.com>2019-06-05 10:18:12 +0200
commit03c72e998dd8016ccda0a6b9515dd3fc0302978a (patch)
tree1f7e1623637de75c2807ef7d40f0feae08c687f3 /spec/graphql/resolvers/tree_resolver_spec.rb
parent3aeea7fb0c1d6389df6d8643ef40dd54aa84d1a8 (diff)
parentb560ce1e666733f12c65e8b9f659c89256c1775b (diff)
downloadgitlab-ce-mh/notes-spec.tar.gz
Merge branch 'master' into mh/notes-specmh/notes-spec
Diffstat (limited to 'spec/graphql/resolvers/tree_resolver_spec.rb')
-rw-r--r--spec/graphql/resolvers/tree_resolver_spec.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/graphql/resolvers/tree_resolver_spec.rb b/spec/graphql/resolvers/tree_resolver_spec.rb
new file mode 100644
index 00000000000..9f95b740ab1
--- /dev/null
+++ b/spec/graphql/resolvers/tree_resolver_spec.rb
@@ -0,0 +1,35 @@
+require 'spec_helper'
+
+describe Resolvers::TreeResolver do
+ include GraphqlHelpers
+
+ let(:repository) { create(:project, :repository).repository }
+
+ describe '#resolve' do
+ it 'resolves to a tree' do
+ result = resolve_repository({ ref: "master" })
+
+ expect(result).to be_an_instance_of(Tree)
+ end
+
+ it 'resolve to a recursive tree' do
+ result = resolve_repository({ ref: "master", recursive: true })
+
+ expect(result.trees[4].path).to eq('files/html')
+ end
+
+ context 'when repository does not exist' do
+ it 'returns nil' do
+ allow(repository).to receive(:exists?).and_return(false)
+
+ result = resolve_repository({ ref: "master" })
+
+ expect(result).to be(nil)
+ end
+ end
+ end
+
+ def resolve_repository(args)
+ resolve(described_class, obj: repository, args: args)
+ end
+end