diff --git a/gem/lib/ruby_ui/select/select_value.rb b/gem/lib/ruby_ui/select/select_value.rb index 80b8fe032..3def939a0 100644 --- a/gem/lib/ruby_ui/select/select_value.rb +++ b/gem/lib/ruby_ui/select/select_value.rb @@ -9,7 +9,8 @@ def initialize(placeholder: nil, **attrs) def view_template(&block) span(**attrs) do - block ? block.call : @placeholder + value = block ? block.call : @placeholder + value || @placeholder end end diff --git a/gem/test/ruby_ui/select_test.rb b/gem/test/ruby_ui/select_test.rb index b1f5b1be2..b51469043 100644 --- a/gem/test/ruby_ui/select_test.rb +++ b/gem/test/ruby_ui/select_test.rb @@ -29,4 +29,14 @@ def test_render_with_all_items assert_match(/John/, output) assert_match('name="NAME"', output) end + + def test_select_value_renders_placeholder_when_block_returns_nil + output = phlex do + RubyUI.SelectValue(placeholder: "Placeholder") do + nil + end + end + + assert_match(/Placeholder/, output) + end end