Sha256: ce6c258cdf5ee4260b1e2db472039dcf71836c5eaeee9faae8ec5c11a08c4d83
Contents?: true
Size: 1.28 KB
Versions: 3
Compression:
Stored size: 1.28 KB
Contents
RSpec.describe "Display adapters" do let(:schema) { Class.new(Dry::Validation::Schema) do key(:temperature_unit) end.new } subject(:form) { Class.new(Formalist::Form) do field :temperature_unit, type: "string", display: "select", option_values: [%w[c c], %w[f f]] end.new(schema) } it "outputs an AST" do expect(form.build({}).to_ast).to eq [ [:field, [ :temperature_unit, "string", "select", nil, [], [], [ [:option_values, [["c", "c"], ["f", "f"]]] ] ]] ] end it "supports custom disply adapters in a provided container" do adapter_class = Class.new do def call(field) field.to_display_variant("custom") end end container = Class.new(Formalist::DisplayAdapters) do register "custom", adapter_class.new end form = Class.new(Formalist::Form) do configure do |config| config.display_adapters = container end field :name, type: "string", display: "custom" field :email, type: "string" end.new(schema) expect(form.build({}).to_ast).to eq [ [:field, [:name, "string", "custom", nil, [], [], []]], [:field, [:email, "string", "default", nil, [], [], []]], ] end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
formalist-0.2.2 | spec/integration/display_adapters_spec.rb |
formalist-0.2.1 | spec/integration/display_adapters_spec.rb |
formalist-0.2.0 | spec/integration/display_adapters_spec.rb |