summaryrefslogtreecommitdiff
path: root/spec/graphql
diff options
context:
space:
mode:
authorcharlieablett <cablett@gitlab.com>2019-06-21 16:20:00 +0200
committercharlieablett <cablett@gitlab.com>2019-07-03 22:53:13 +1200
commitf4890d90782ad42a802b89c2a17c83bf9fb9d123 (patch)
tree233421eff8ec110cc16b1dcb9b50bedccb044e76 /spec/graphql
parentc99c30fdd6f3adf4fb29aad4b10e265be69d2d67 (diff)
downloadgitlab-ce-f4890d90782ad42a802b89c2a17c83bf9fb9d123.tar.gz
Alert if `calls_gitaly` declaration missing
- Move `calls_gitaly_check` to public - Add instrumentation for flagging missing CallsGitaly declarations - Wrap resolver proc in before-and-after Gitaly counts to get the net Gitaly call count for the resolver.
Diffstat (limited to 'spec/graphql')
-rw-r--r--spec/graphql/gitlab_schema_spec.rb4
-rw-r--r--spec/graphql/types/base_field_spec.rb18
2 files changed, 9 insertions, 13 deletions
diff --git a/spec/graphql/gitlab_schema_spec.rb b/spec/graphql/gitlab_schema_spec.rb
index d36e428a8ee..93b86b9b812 100644
--- a/spec/graphql/gitlab_schema_spec.rb
+++ b/spec/graphql/gitlab_schema_spec.rb
@@ -21,6 +21,10 @@ describe GitlabSchema do
expect(field_instrumenters).to include(instance_of(::Gitlab::Graphql::Present::Instrumentation))
end
+ it 'enables using gitaly call checker' do
+ expect(field_instrumenters).to include(instance_of(::Gitlab::Graphql::CallsGitaly::Instrumentation))
+ end
+
it 'has the base mutation' do
expect(described_class.mutation).to eq(::Types::MutationType.to_graphql)
end
diff --git a/spec/graphql/types/base_field_spec.rb b/spec/graphql/types/base_field_spec.rb
index d7360872508..0be83ea60c4 100644
--- a/spec/graphql/types/base_field_spec.rb
+++ b/spec/graphql/types/base_field_spec.rb
@@ -106,26 +106,18 @@ describe Types::BaseField do
let(:no_gitaly_field) { described_class.new(name: 'test', type: GraphQL::STRING_TYPE, null: true, calls_gitaly: false) }
context 'if there are no Gitaly calls' do
- before do
- allow(Gitlab::GitalyClient).to receive(:get_request_count).and_return(0)
- end
-
it 'does not raise an error if calls_gitaly is false' do
- expect { no_gitaly_field.send(:calls_gitaly_check) }.not_to raise_error
- end
-
- it 'raises an error if calls_gitaly: true appears' do
- expect { gitaly_field.send(:calls_gitaly_check) }.to raise_error(/please add `calls_gitaly: true`/)
+ expect { no_gitaly_field.send(:calls_gitaly_check, 0) }.not_to raise_error
end
end
context 'if there is at least 1 Gitaly call' do
- before do
- allow(Gitlab::GitalyClient).to receive(:get_request_count).and_return(1)
+ it 'does not raise an error if calls_gitaly is true' do
+ expect { gitaly_field.send(:calls_gitaly_check, 1) }.not_to raise_error
end
- it 'does not raise an error if calls_gitaly is true' do
- expect { gitaly_field.send(:calls_gitaly_check) }.not_to raise_error
+ it 'raises an error if calls_gitaly: is false or not defined' do
+ expect { no_gitaly_field.send(:calls_gitaly_check, 1) }.to raise_error(/please add `calls_gitaly: true`/)
end
end
end