diff options
author | charlieablett <cablett@gitlab.com> | 2019-08-28 15:47:29 +1200 |
---|---|---|
committer | Brett Walker <bwalker@gitlab.com> | 2019-10-08 14:55:06 -0500 |
commit | 46ebc4db31f958e790ed56e7081b852d81048d48 (patch) | |
tree | 00e71a6eeb44686f6da64a30a45f42031c6aa619 | |
parent | dde34150e8efe5251eb6efbc6a72da7daf262d97 (diff) | |
download | gitlab-ce-46ebc4db31f958e790ed56e7081b852d81048d48.tar.gz |
Allow tests to ignore recursion
-rw-r--r-- | lib/gitlab/graphql/query_analyzers/recursion_analyzer.rb | 6 | ||||
-rw-r--r-- | spec/support/helpers/graphql_helpers.rb | 5 |
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 |