1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/optparse/test_did_you_mean.rb
Jeremy Evans ab3cb29bd9 Avoid defining the same test class in multiple files
Should fix issues with parallel testing sometimes not running all
tests.

This should be viewed skipping whitespace changes.

Fixes [Bug #18731]
2022-04-22 15:00:16 -07:00

48 lines
1.2 KiB
Ruby

# frozen_string_literal: false
require_relative 'test_optparse'
begin
require "did_you_mean"
rescue LoadError
return
end
class TestOptionParserDidYouMean < TestOptionParser
def setup
super
@opt.def_option("--foo", Integer) { |v| @foo = v }
@opt.def_option("--bar", Integer) { |v| @bar = v }
@opt.def_option("--baz", Integer) { |v| @baz = v }
@formatter = ::DidYouMean.formatter
if ::DidYouMean.const_defined?(:Formatter)
::DidYouMean.formatter = ::DidYouMean::Formatter
else
case @formatter
when ::DidYouMean::PlainFormatter
else
::DidYouMean.formatter = ::DidYouMean::PlainFormatter.new
end
end
end
def teardown
::DidYouMean.formatter = @formatter
end
def test_no_suggestion
assert_raise_with_message(OptionParser::InvalidOption, "invalid option: --cuz") do
@opt.permute!(%w"--cuz")
end
end
def test_plain
assert_raise_with_message(OptionParser::InvalidOption, /invalid option: --baa\nDid you mean\?\s+bar\s+baz\Z/) do
@opt.permute!(%w"--baa")
end
end
def test_ambiguous
assert_raise_with_message(OptionParser::AmbiguousOption, /ambiguous option: --ba\nDid you mean\?\s+bar\s+baz\Z/) do
@opt.permute!(%w"--ba")
end
end
end