Commit f4fe15fe authored by Alex Kalderimis's avatar Alex Kalderimis

Return empty results rather than raising errors

parent 58931f4a
...@@ -16,16 +16,18 @@ RSpec.describe Resolvers::Snippets::BlobsResolver do ...@@ -16,16 +16,18 @@ RSpec.describe Resolvers::Snippets::BlobsResolver do
context 'when user is not authorized' do context 'when user is not authorized' do
let(:other_user) { create(:user) } let(:other_user) { create(:user) }
it 'raises an error' do it 'redacts the field' do
expect do expect(resolve_blobs(snippet, user: other_user)).to be_nil
resolve_blobs(snippet, user: other_user)
end.to raise_error(Gitlab::Graphql::Errors::ResourceNotAvailable)
end end
end end
context 'when using no filter' do context 'when using no filter' do
it 'returns all snippet blobs' do it 'returns all snippet blobs' do
expect(resolve_blobs(snippet).map(&:path)).to contain_exactly(*snippet.list_files) result = resolve_blobs(snippet, args: {})
expect(result).to match_array(snippet.list_files.map do |file|
have_attributes(path: file)
end)
end end
end end
...@@ -34,7 +36,13 @@ RSpec.describe Resolvers::Snippets::BlobsResolver do ...@@ -34,7 +36,13 @@ RSpec.describe Resolvers::Snippets::BlobsResolver do
it 'returns an array of files' do it 'returns an array of files' do
path = 'CHANGELOG' path = 'CHANGELOG'
expect(resolve_blobs(snippet, args: { paths: path }).first.path).to eq(path) expect(resolve_blobs(snippet, paths: [path])).to contain_exactly(have_attributes(path: path))
end
end
context 'the argument does not match anything' do
it 'returns an empty result' do
expect(resolve_blobs(snippet, paths: ['does not exist'])).to be_empty
end end
end end
...@@ -42,13 +50,15 @@ RSpec.describe Resolvers::Snippets::BlobsResolver do ...@@ -42,13 +50,15 @@ RSpec.describe Resolvers::Snippets::BlobsResolver do
it 'returns an array of files' do it 'returns an array of files' do
paths = ['CHANGELOG', 'README.md'] paths = ['CHANGELOG', 'README.md']
expect(resolve_blobs(snippet, args: { paths: paths }).map(&:path)).to contain_exactly(*paths) expect(resolve_blobs(snippet, paths: paths)).to match_array(paths.map do |file|
have_attributes(path: file)
end)
end end
end end
end end
end end
def resolve_blobs(snippet, user: current_user, args: {}) def resolve_blobs(snippet, user: current_user, paths: [], args: { paths: paths })
resolve(described_class, args: args, ctx: { current_user: user }, obj: snippet) resolve(described_class, args: args, ctx: { current_user: user }, obj: snippet)
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment