Files
feather-case/test/prompting_ui_test.rb

32 lines
921 B
Ruby

# frozen_string_literal: true
require "stringio"
require_relative "test_helper"
class PromptingUITest < Minitest::Test
def test_menu_prompt_is_a_header_and_answers_are_separated
output = StringIO.new
ui = FeatherCaseWizard::PromptingUI.wrap(
HighLine.new(StringIO.new("1\nDemo\n"), output)
)
selected = ui.choose("Export format (current: 3mf)") do |menu|
menu.choice("3MF") { "3mf" }
menu.choice("STL") { "stl" }
end
name = ui.ask("Case name: ")
assert_equal "3mf", selected
assert_equal "Demo", name
assert_includes output.string, "Export format (current: 3mf):\n1. 3MF\n2. STL\n? \n"
refute_includes output.string, "3. Export format"
assert_match(/\? \nCase name: /, output.string)
end
def test_wrap_is_idempotent
ui = FeatherCaseWizard::PromptingUI.wrap(HighLine.new)
assert_same ui, FeatherCaseWizard::PromptingUI.wrap(ui)
end
end