Sha256: 56484a043d841dc9c34d4b5bc15f9d23efff1f52b3029d5592708e1e14988e39

Contents?: true

Size: 1.95 KB

Versions: 16

Compression:

Stored size: 1.95 KB

Contents

RSpec.shared_examples "subscription validations" do
  context "when validating" do
    it "is invalid without an id" do
      model = build_subscription(id: "")

      model.validate

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

    it "is invalid without a subscription_group_id" do
      model = build_subscription(subscription_group_id: "")

      model.validate

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

    it "is invalid with a blank query" do
      model = build_subscription(query: "")

      model.validate

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

    it "is invalid with blank schema_key" do
      model = build_subscription(schema_key: "")

      model.validate

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

    it "is invalid with an invalid schema_key" do
      model = build_subscription(schema_key: "invalid")

      model.validate

      expect(model.errors[:query]).to contain_exactly(/Could not find a schema for schema_key 'invalid'/)
    end

    it "is invalid with an invalid query" do
      model = build_subscription(
        query: subscription_query(query: "foo { a_field_that_does_not_exist }")
      )

      model.validate

      expect(model).not_to be_valid
      expect(model.errors[:query]).to contain_exactly(
        match(/Field 'a_field_that_does_not_exist' doesn't exist on type 'testObject'/)
      )
    end

    it "valid with a valid query" do
      model = build_subscription(
        query: subscription_query(query: "foo { id }")
      )

      model.validate

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

  def build_subscription(overrides = {})
    attrs = {
      id: SecureRandom.uuid,
      subscription_group_id: SecureRandom.uuid,
      schema_key: "test",
      query: subscription_query
    }.merge(overrides)

    described_class.new(attrs)
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
nulogy_message_bus_producer-5.0.8 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.7 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.6 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.5 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.4 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.3 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.2 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.1 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.1.alpha spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-5.0.0 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-4.0.0 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-3.7.0 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-3.6.0 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-3.5.0 spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-4.0.0.alpha spec/support/shared_examples/subscription_validations.rb
nulogy_message_bus_producer-3.4.1 spec/support/shared_examples/subscription_validations.rb