Sha256: b5ee3af094ad03ea8c533c71c64f10a07dc628ef62e7119306bcf5fd4d9cd785

Contents?: true

Size: 878 Bytes

Versions: 19

Compression:

Stored size: 878 Bytes

Contents

RSpec.describe Dry::Validation::Schema, 'defining schema using dry struct' do
  before do
    Dry::Validation.load_extensions(:struct)
  end

  subject(:schema) do
    Dry::Validation.Schema do
      required(:person).filled(Test::Person)
    end
  end

  before do
    class Test::Name < Dry::Struct::Value
      attribute :given_name, Dry::Types['strict.string']
      attribute :family_name, Dry::Types['strict.string']
    end

    class Test::Person < Dry::Struct::Value
      attribute :name, Test::Name
    end
  end

  it 'handles nested structs' do
    expect(schema.call(person: { name: { given_name: 'Tim', family_name: 'Cooper' } })).to be_success
  end

  it 'fails when input is not valid' do
    expect(schema.call(person: { name: { given_name: 'Tim' } }).messages).to eq(
      person: { name: { family_name: ['is missing', 'must be String'] } }
    )
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
dry-validation-0.13.3 spec/extensions/struct/schema_spec.rb
dry-validation-0.13.2 spec/extensions/struct/schema_spec.rb
dry-validation-0.13.1 spec/extensions/struct/schema_spec.rb
dry-validation-0.11.2 spec/extensions/struct/schema_spec.rb
dry-validation-0.12.3 spec/extensions/struct/schema_spec.rb
dry-validation-0.13.0 spec/extensions/struct/schema_spec.rb
dry-validation-0.12.2 spec/extensions/struct/schema_spec.rb
dry-validation-0.12.1 spec/extensions/struct/schema_spec.rb
dry-validation-0.12.0 spec/extensions/struct/schema_spec.rb
dry-validation-0.11.1 spec/extensions/struct/schema_spec.rb
dry-validation-0.11.0 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.7 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.6 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.5 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.4 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.3 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.2 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.1 spec/extensions/struct/schema_spec.rb
dry-validation-0.10.0 spec/extensions/struct/schema_spec.rb