Sha256: c407b507e16563ac9d720c8eedda6eea2adfa9010f0879a72ff44901bd714d76
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
require "dry-auto_inject" require "formalist/elements/standard" RSpec.describe "Dependency injection" do let(:schema) { Dry::Validation.Schema do key(:status).required end } subject(:form) { Class.new(Formalist::Form) do include Test::HashImport["fetch_options"] define do select_box :status, options: dep(:status_options) end def status_options fetch_options.map { |option| [option, option.capitalize] } end end.new } before do Test::Container = Class.new do extend Dry::Container::Mixin end Test::Container.register :fetch_options, -> { %w[draft published] } auto_inject = Dry::AutoInject(Test::Container) Test::HashImport = -> *keys do auto_inject.hash[*keys] end end it "supports dependency injection via the initializer's options hash" do expect(form.build.to_ast).to eql [ [:field, [ :status, :select_box, nil, [], [:object, [ [:options, [:array, [ [:array, [[:value, ["draft"]], [:value, ["Draft"]]]], [:array, [[:value, ["published"]], [:value, ["Published"]]]] ]]] ]] ]] ] end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
formalist-0.3.0 | spec/integration/dependency_injection_spec.rb |
formalist-0.2.3 | spec/integration/dependency_injection_spec.rb |