Sha256: 58c2d0b1a93a9bae1b6fa370f3f606dbc21da95b1c6dcf73f064637fa9e2d529

Contents?: true

Size: 1.02 KB

Versions: 22

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true
require "spec_helper"

class SpecExampleError < StandardError; end

describe GraphQL::Schema::RescueMiddleware do
  let(:error_middleware) { ->{ raise(error_class) } }

  let(:rescue_middleware) do
    middleware = GraphQL::Schema::RescueMiddleware.new
    middleware.rescue_from(SpecExampleError) { |err| "there was an example error: #{err.class.name}" }
    middleware
  end

  let(:steps) { [rescue_middleware, error_middleware] }

  let(:middleware_chain) { GraphQL::Schema::MiddlewareChain.new(steps: steps) }

  describe "known errors" do
    let(:error_class) { SpecExampleError }
    it "handles them as execution errors" do
      result = middleware_chain.invoke([])
      assert_equal("there was an example error: SpecExampleError", result.message)
      assert_equal(GraphQL::ExecutionError, result.class)
    end
  end

  describe "unknown errors" do
    let(:error_class) { RuntimeError }
    it "re-raises them" do
      assert_raises(RuntimeError) { middleware_chain.invoke([]) }
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
graphql-1.5.15 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.6.1 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.6.0 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.14 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.13 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.7.1 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.12 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.11 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.10 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.9 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.8 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.7 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.6 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.5 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.4 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.5.3 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.4.5 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.4.4 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.4.3 spec/graphql/schema/rescue_middleware_spec.rb
graphql-1.4.2 spec/graphql/schema/rescue_middleware_spec.rb