Sha256: c8dd3465c944170db893ac9016c092addfcca0b6b4531225b510c6b6ac83fa30

Contents?: true

Size: 769 Bytes

Versions: 3

Compression:

Stored size: 769 Bytes

Contents

RSpec.describe Formalist::Form do
  let(:schema) {
    Class.new(Dry::Validation::Schema) do
      key(:title, &:str?)
      key(:rating, &:int?)
    end.new
  }

  subject(:form) {
    Class.new(Formalist::Form) do
      component do |c|
        c.field :title, type: "string"
        c.field :rating, type: "int"
      end
    end.new(schema)
  }

  it "outputs an AST" do
    ast = form.build(title: "Aurora", rating:  10).to_ast

    expect(form.build(title: "Aurora", rating:  10).to_ast).to eq [
      [:component, [
        [],
        [
          [:field, [:title, "string", "default", "Aurora", [[:predicate, [:str?, []]]], [], []]],
          [:field, [:rating, "int", "default", 10, [[:predicate, [:int?, []]]], [], []]]
        ],
      ]],
    ]
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
formalist-0.2.2 spec/integration/form_spec.rb
formalist-0.2.1 spec/integration/form_spec.rb
formalist-0.2.0 spec/integration/form_spec.rb