summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcharlieablett <cablett@gitlab.com>2019-08-28 15:47:29 +1200
committerBrett Walker <bwalker@gitlab.com>2019-10-08 14:55:06 -0500
commit46ebc4db31f958e790ed56e7081b852d81048d48 (patch)
tree00e71a6eeb44686f6da64a30a45f42031c6aa619
parentdde34150e8efe5251eb6efbc6a72da7daf262d97 (diff)
downloadgitlab-ce-46ebc4db31f958e790ed56e7081b852d81048d48.tar.gz
Allow tests to ignore recursion
-rw-r--r--lib/gitlab/graphql/query_analyzers/recursion_analyzer.rb6
-rw-r--r--spec/support/helpers/graphql_helpers.rb5
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/gitlab/graphql/query_analyzers/recursion_analyzer.rb b/lib/gitlab/graphql/query_analyzers/recursion_analyzer.rb
index 70d4672d079..ccf9e597307 100644
--- a/lib/gitlab/graphql/query_analyzers/recursion_analyzer.rb
+++ b/lib/gitlab/graphql/query_analyzers/recursion_analyzer.rb
@@ -45,13 +45,17 @@ module Gitlab
def recursion_too_deep?(node_name, times_encountered)
return if IGNORED_FIELDS.include?(node_name)
- times_encountered > RECURSION_THRESHOLD
+ times_encountered > recursion_threshold
end
def skip_node?(irep_node)
ast_node = irep_node.ast_node
!ast_node.is_a?(GraphQL::Language::Nodes::Field) || ast_node.selections.empty?
end
+
+ def recursion_threshold
+ RECURSION_THRESHOLD
+ end
end
end
end
diff --git a/spec/support/helpers/graphql_helpers.rb b/spec/support/helpers/graphql_helpers.rb
index 6f8cbd9f516..e62bce3f321 100644
--- a/spec/support/helpers/graphql_helpers.rb
+++ b/spec/support/helpers/graphql_helpers.rb
@@ -117,6 +117,7 @@ module GraphqlHelpers
def all_graphql_fields_for(class_name, parent_types = Set.new)
allow_unlimited_graphql_complexity
allow_unlimited_graphql_depth
+ allow_high_graphql_recursion
type = GitlabSchema.types[class_name.to_s]
return "" unless type
@@ -240,6 +241,10 @@ module GraphqlHelpers
allow_any_instance_of(GitlabSchema).to receive(:max_depth).and_return nil
allow(GitlabSchema).to receive(:max_query_depth).with(any_args).and_return nil
end
+
+ def allow_high_graphql_recursion
+ allow_any_instance_of(Gitlab::Graphql::QueryAnalyzers::RecursionAnalyzer).to receive(:recursion_threshold).and_return 1000
+ end
end
# This warms our schema, doing this as part of loading the helpers to avoid