Skip to content

Commit

Permalink
Merge pull request #780 from timdiggins/fix-ci-integration
Browse files Browse the repository at this point in the history
Fix CI to be green
  • Loading branch information
rafaelfranca authored Jun 15, 2022
2 parents ab3b5be + 4ee68cb commit 5089c9b
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 27 deletions.
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ end

group :test do
gem "childlabor"
gem "coveralls", ">= 0.8.19"
gem 'coveralls_reborn', '~> 0.23.1', require: false if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
gem "rspec", ">= 3.2"
gem "rspec-mocks", ">= 3"
gem "rubocop", "~> 0.50.0"
Expand Down
14 changes: 8 additions & 6 deletions spec/helper.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
$TESTING = true

require "simplecov"
require "coveralls"
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
require "simplecov"
require "coveralls"

SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]
SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter, Coveralls::SimpleCov::Formatter]

SimpleCov.start do
add_filter "/spec"
minimum_coverage(90)
SimpleCov.start do
add_filter "/spec"
minimum_coverage(90)
end
end

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
Expand Down
4 changes: 2 additions & 2 deletions spec/line_editor_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
describe ".readline" do
it "uses the Readline line editor" do
editor = double("Readline")
expect(Thor::LineEditor::Readline).to receive(:new).with("Enter your name ", :default => "Brian").and_return(editor)
expect(Thor::LineEditor::Readline).to receive(:new).with("Enter your name ", {:default => "Brian"}).and_return(editor)
expect(editor).to receive(:readline).and_return("George")
expect(Thor::LineEditor.readline("Enter your name ", :default => "Brian")).to eq("George")
end
Expand All @@ -35,7 +35,7 @@
describe ".readline" do
it "uses the Basic line editor" do
editor = double("Basic")
expect(Thor::LineEditor::Basic).to receive(:new).with("Enter your name ", :default => "Brian").and_return(editor)
expect(Thor::LineEditor::Basic).to receive(:new).with("Enter your name ", {:default => "Brian"}).and_return(editor)
expect(editor).to receive(:readline).and_return("George")
expect(Thor::LineEditor.readline("Enter your name ", :default => "Brian")).to eq("George")
end
Expand Down
4 changes: 3 additions & 1 deletion spec/parser/options_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ def remaining
expected = "Unknown switches \"--baz\""
expected << "\nDid you mean? \"--bar\"" if Thor::Correctable

expect { check_unknown! }.to raise_error(Thor::UnknownArgumentError, expected)
expect { check_unknown! }.to raise_error(Thor::UnknownArgumentError) do |error|
expect(error.to_s).to eq(expected)
end
end

it "skips leading non-switches" do
Expand Down
34 changes: 17 additions & 17 deletions spec/shell/basic_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -70,80 +70,80 @@ def shell

it "prints a message to the user with the available options, expects case-sensitive matching, and determines the correctness of the answer" do
flavors = %w(strawberry chocolate vanilla)
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors).and_return("chocolate")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors}).and_return("chocolate")
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors)).to eq("chocolate")
end

it "prints a message to the user with the available options, expects case-sensitive matching, and reasks the question after an incorrect response" do
flavors = %w(strawberry chocolate vanilla)
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors).and_return("moose tracks", "chocolate")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors}).and_return("moose tracks", "chocolate")
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors)).to eq("chocolate")
end

it "prints a message to the user with the available options, expects case-sensitive matching, and reasks the question after a case-insensitive match" do
flavors = %w(strawberry chocolate vanilla)
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors).and_return("cHoCoLaTe", "chocolate")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors}).and_return("cHoCoLaTe", "chocolate")
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors)).to eq("chocolate")
end

it "prints a message to the user with the available options, expects case-insensitive matching, and determines the correctness of the answer" do
flavors = %w(strawberry chocolate vanilla)
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors, :case_insensitive => true).and_return("CHOCOLATE")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors, :case_insensitive => true}).and_return("CHOCOLATE")
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors, :case_insensitive => true)).to eq("chocolate")
end

it "prints a message to the user with the available options, expects case-insensitive matching, and reasks the question after an incorrect response" do
flavors = %w(strawberry chocolate vanilla)
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', :limited_to => flavors, :case_insensitive => true).and_return("moose tracks", "chocolate")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] ', {:limited_to => flavors, :case_insensitive => true}).and_return("moose tracks", "chocolate")
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :limited_to => flavors, :case_insensitive => true)).to eq("chocolate")
end

it "prints a message to the user containing a default and sets the default if only enter is pressed" do
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? (vanilla) ', :default => "vanilla").and_return("")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? (vanilla) ', {:default => "vanilla"}).and_return("")
expect(shell.ask('What\'s your favorite Neopolitan flavor?', :default => "vanilla")).to eq("vanilla")
end

it "prints a message to the user with the available options and reasks the question after an incorrect response and then returns the default" do
flavors = %w(strawberry chocolate vanilla)
expect($stdout).to receive(:print).with("Your response must be one of: [strawberry, chocolate, vanilla]. Please try again.\n")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] (vanilla) ', :default => "vanilla", :limited_to => flavors).and_return("moose tracks", "")
expect(Thor::LineEditor).to receive(:readline).with('What\'s your favorite Neopolitan flavor? [strawberry, chocolate, vanilla] (vanilla) ', {:default => "vanilla", :limited_to => flavors}).and_return("moose tracks", "")
expect(shell.ask("What's your favorite Neopolitan flavor?", :default => "vanilla", :limited_to => flavors)).to eq("vanilla")
end
end

describe "#yes?" do
it "asks the user and returns true if the user replies yes" do
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("y")
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("y")
expect(shell.yes?("Should I overwrite it?")).to be true
end

it "asks the user and returns false if the user replies no" do
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("n")
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("n")
expect(shell.yes?("Should I overwrite it?")).not_to be true
end

it "asks the user and returns false if the user replies with an answer other than yes or no" do
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("foobar")
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("foobar")
expect(shell.yes?("Should I overwrite it?")).to be false
end
end

describe "#no?" do
it "asks the user and returns true if the user replies no" do
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("n")
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("n")
expect(shell.no?("Should I overwrite it?")).to be true
end

it "asks the user and returns false if the user replies yes" do
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("Yes")
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("Yes")
expect(shell.no?("Should I overwrite it?")).to be false
end

it "asks the user and returns false if the user replies with an answer other than yes or no" do
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", :add_to_history => false).and_return("foobar")
expect(Thor::LineEditor).to receive(:readline).with("Should I overwrite it? ", {:add_to_history => false}).and_return("foobar")
expect(shell.no?("Should I overwrite it?")).to be false
end
end
Expand Down Expand Up @@ -431,13 +431,13 @@ def #456 Lanç...
expect(content).to eq(<<-TABLE)
Name Number Color
Erik 1234567890123 green
TABLE
TABLE
end
end

describe "#file_collision" do
it "shows a menu with options" do
expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', :add_to_history => false).and_return("n")
expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', {:add_to_history => false}).and_return("n")
shell.file_collision("foo")
end

Expand Down Expand Up @@ -478,7 +478,7 @@ def #456 Lanç...
end

it "always returns true if the user chooses always" do
expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', :add_to_history => false).and_return("a")
expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqh] ', {:add_to_history => false}).and_return("a")

expect(shell.file_collision("foo")).to be true

Expand All @@ -488,7 +488,7 @@ def #456 Lanç...

describe "when a block is given" do
it "displays diff and merge options to the user" do
expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqdhm] ', :add_to_history => false).and_return("s")
expect(Thor::LineEditor).to receive(:readline).with('Overwrite foo? (enter "h" for help) [Ynaqdhm] ', {:add_to_history => false}).and_return("s")
shell.file_collision("foo") {}
end

Expand Down

0 comments on commit 5089c9b

Please sign in to comment.