Sha256: 34490214a31de2d65653b2770887e45208e2e3f7117476cc32bd2dc149d559b3

Contents?: true

Size: 1.17 KB

Versions: 2

Compression:

Stored size: 1.17 KB

Contents

require "integration_spec_helper"

RSpec.describe NulogyMessageBusProducer::SubscriberGraphqlSchemaValidator do
  subject(:validator) { described_class.new }

  describe "#validate" do
    context "when a valid query is present" do
      it "return true" do
        subscribe_to(query: <<~GRAPHQL)
          foo {
            id
          }
        GRAPHQL

        expect(validator.validate).to be(true)
      end
    end

    context "when an invalid query is present" do
      let(:subscription_with_error) do
        subscription = subscribe_to(query: <<~GRAPHQL)
          foo {
            id
          }
        GRAPHQL

        subscription.query.gsub!(/\bid\b/, "a_field_that_does_not_exist")
        subscription.save(validate: false)
        subscription
      end

      it "returns false" do
        subscription_with_error

        expect(validator.validate).to be(false)
      end

      it "has errors" do
        subscription_with_error

        validator.validate

        expect(validator.errors).to contain_exactly(
          "Field 'a_field_that_does_not_exist' doesn't exist on type 'testObject' (id: #{subscription_with_error.id})"
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nulogy_message_bus_producer-3.3.0 spec/integration/lib/nulogy_message_bus_producer/subscriber_graphql_schema_validator_spec.rb
nulogy_message_bus_producer-3.2.1 spec/integration/lib/nulogy_message_bus_producer/subscriber_graphql_schema_validator_spec.rb