Sha256: c007d8601e9b2cb37d52409e32845f6b69caef6f1565e15485758b742265e2de

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

require "unit_spec_helper"

RSpec.describe NulogyMessageBusProducer::PublicSubscription do
  context "when validating" do
    before do
      NulogyMessageBusProducer.config.register_schema schema: "NulogyMessageBusProducer::Specs::TestSchema", key: "test"
    end

    it "is invalid with a blank query" do
      model = NulogyMessageBusProducer::PublicSubscription.new(
        schema_key: "test",
        query: ""
      )

      model.validate

      expect(model).to_not be_valid
      expect(model.errors[:query]).to contain_exactly("can't be blank")
    end

    it "is invalid with blank schema_key" do
      model = NulogyMessageBusProducer::PublicSubscription.new(schema_key: "")

      model.validate

      expect(model.errors[:schema_key]).to be_present
    end

    it "is invalid with an invalid query" do
      model = NulogyMessageBusProducer::PublicSubscription.new(
        schema_key: "test",
        query: <<~GRAPHQL
          query ($id: UUID!) {
            foo (id: $id) {
              a_field_that_does_not_exist
            }
          }
        GRAPHQL
      )

      model.validate

      expect(model).to_not be_valid
      expect(model.errors[:query]).to contain_exactly(
        "Field 'a_field_that_does_not_exist' doesn't exist on type 'testObject' (id: <new_record>)"
      )
    end

    it "valid with a valid query" do
      model = NulogyMessageBusProducer::PublicSubscription.new(
        schema_key: "test",
        query: <<~GRAPHQL
          query ($id: UUID!) {
            foo (id: $id) {
              id
            }
          }
        GRAPHQL
      )

      model.validate

      expect(model.errors).to_not include(:query)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nulogy_message_bus_producer-2.1.0 spec/unit/lib/nulogy_message_bus_producer/public_subscription_spec.rb