Sha256: fc5036da7f04b20f8424828840e2896a20dac9dbd89e4c00311a098c4417513a

Contents?: true

Size: 1.45 KB

Versions: 35

Compression:

Stored size: 1.45 KB

Contents

require "spec_helper"

describe GraphQL::Analysis::MaxQueryComplexity do
  before do
    @prev_max_complexity = DummySchema.max_complexity
  end

  after do
    DummySchema.max_complexity = @prev_max_complexity
  end


  let(:result) { DummySchema.execute(query_string) }
  let(:query_string) {%|
    {
      a: cheese(id: 1) { id }
      b: cheese(id: 1) { id }
      c: cheese(id: 1) { id }
      d: cheese(id: 1) { id }
      e: cheese(id: 1) { id }
    }
  |}

  describe "when a query goes over max complexity" do
    before do
      DummySchema.max_complexity = 9
    end

    it "returns an error" do
      assert_equal "Query has complexity of 10, which exceeds max complexity of 9", result["errors"][0]["message"]
    end
  end

  describe "when there is no max complexity" do
    before do
      DummySchema.max_complexity = nil
    end
    it "doesn't error" do
      assert_equal nil, result["errors"]
    end
  end

  describe "when the query is less than the max complexity" do
    before do
      DummySchema.max_complexity = 99
    end
    it "doesn't error" do
      assert_equal nil, result["errors"]
    end
  end

  describe "when complexity is overriden at query-level" do
    before do
      DummySchema.max_complexity = 100
    end
    let(:result) { DummySchema.execute(query_string, max_complexity: 7) }

    it "is applied" do
      assert_equal "Query has complexity of 10, which exceeds max complexity of 7", result["errors"][0]["message"]
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
graphql-1.2.6 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.2.5 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.2.4 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.2.3 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.2.2 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.2.1 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.2.0 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.1.0 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-1.0.0 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.19.4 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.19.3 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.19.2 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.19.1 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.19.0 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.18.15 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.18.14 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.18.13 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.18.12 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.18.11 spec/graphql/analysis/max_query_complexity_spec.rb
graphql-0.18.10 spec/graphql/analysis/max_query_complexity_spec.rb