spec/belajar/terminal/output_spec.rb in belajar-0.1.1 vs spec/belajar/terminal/output_spec.rb in belajar-1.0.0
- old
+ new
@@ -1,9 +1,8 @@
require 'spec_helper'
describe Belajar::Terminal::Output do
-
subject do
require 'thor'
class Test < Thor
include Belajar::Terminal::Output
end
@@ -28,122 +27,128 @@
it "has the private method #{method}" do
expect(subject.private_methods.include?(method)).to be_truthy
end
end
- describe "::say" do
- it "prints the prescribed output to the $stdout" do
- line = "line"
+ describe '.say' do
+ it 'prints the prescribed output to the $stdout' do
+ line = 'line'
expect($stdout).to receive(:puts).with("\t#{line}")
subject.send(:say, line)
end
- it "adds the line start in case of multiline inputs" do
- lines = "first line\nsecond line\nthird line\n"
- out_lines = lines.split("\n").map {|l| "\t#{l}" }.join("\n")
+ it 'adds the line start in case of multiline inputs' do
+ lines = "first line\nsecond line\nthird line\n"
+ out_lines = lines.split("\n").map { |l| "\t#{l}" }.join("\n")
+
expect($stdout).to receive(:puts).with(out_lines)
subject.send(:say, lines)
end
end
- describe "::empty_line" do
- it "prints an empty line to the $stdout" do
+ describe '.empty_line' do
+ it 'prints an empty line to the $stdout' do
expect($stdout).to receive(:puts).with('')
subject.send(:empty_line)
end
end
- describe "::get" do
- it "prints a string to $stdout to get a line on $stdin" do
- printed = 'printed'
- received = 'received'
+ describe '.get' do
+ let(:text) { 'printed' }
- allow($stdin).to receive(:gets) { received }
- expect($stdout).to receive(:print).with("\n\t#{printed} ")
+ it 'prints a string to $stdout to get a line on $stdin' do
+ allow($stdin).to receive(:gets).and_return('received')
+
+ expect($stdout).to receive(:print).with("\n\t#{text} ")
expect($stdin).to receive(:gets)
- subject.send(:get, printed)
+ subject.send(:get, text)
end
end
- describe "::say_info" do
- it "prints the prescribed output to the $stdout" do
- line = "line"
- expect($stdout).to receive(:puts).exactly(4).times.with("")
+ describe '.say_info' do
+ let(:line) { 'line' }
+
+ it 'prints the prescribed output to the $stdout' do
+ expect($stdout).to receive(:puts).exactly(4).times.with('')
expect($stdout).to receive(:puts).with("\t" + " ℹ #{line}".light_blue)
- expect($stdout).to receive(:puts).twice.times.with("\t" + ('-' * 70).light_blue)
+ expect($stdout).to receive(:puts).twice.with("\t" + ('-' * 70).light_blue)
subject.send(:say_info, line)
end
end
- describe "::say_warning" do
- it "prints the prescribed output to the $stdout" do
- line = "line"
- expect($stdout).to receive(:puts).exactly(4).times.with("")
+ describe '.say_warning' do
+ let(:line) { 'line' }
+
+ it 'prints the prescribed output to the $stdout' do
+ expect($stdout).to receive(:puts).exactly(4).times.with('')
expect($stdout).to receive(:puts).with("\t" + "⚠ #{line}".light_red)
- expect($stdout).to receive(:puts).twice.times.with("\t" + ('-' * 70).light_red)
+ expect($stdout).to receive(:puts).twice.with("\t" + ('-' * 70).light_red)
subject.send(:say_warning, line)
end
end
- describe "::get_command" do
+ describe '.get_command' do
before do
@correct_command = 'correct command'
@description = 'description'
allow($stdin).to receive(:gets).and_return(@correct_command)
allow(Kernel).to receive(:system) { '' }
end
- it "prints a description" do
+ it 'prints a description' do
expect($stdout).to receive(:puts).once.with("\t#{@description}")
subject.send(:get_command, @correct_command, @description)
end
- it "gets a command from the $stdin" do
+ it 'gets a command from the $stdin' do
expect($stdin).to receive(:gets)
subject.send(:get_command, @correct_command, @description)
end
- context "with the right command typed in:" do
- it "gets a specified command from the user" do
+ context 'with the right command typed in' do
+ it 'gets a specified command from the user' do
subject.send(:get_command, @correct_command, @description)
end
end
- context "with a wrong command typed in:" do
- it "writes a hint" do
+ context 'with a wrong command typed in' do
+ it 'writes a hint' do
wrong_command = 'wrong command'
error = "This was something else. Try \"#{@correct_command}\"."
- allow($stdin).to receive(:gets).and_return(wrong_command, @correct_command)
+ allow($stdin)
+ .to receive(:gets)
+ .and_return(wrong_command, @correct_command)
+
expect($stdout).to receive(:puts).once.with("\t#{error}")
subject.send(:get_command, @correct_command, @description)
end
end
end
- describe "::get_confirm" do
+ describe '.get_confirm' do
before do
@description = 'description'
allow($stdin).to receive(:gets).and_return('yes')
end
- it "prints a warning with the given description" do
+ it 'prints a warning with the given description' do
expect(subject).to receive(:say_warning).once.with(@description)
subject.send(:get_confirm, @description)
end
- it "gets a command from the $stdin" do
+ it 'gets a command from the $stdin' do
expect($stdin).to receive(:gets)
subject.send(:get_confirm, @description)
end
- it "takes a block to run when confirmed" do
+ it 'takes a block to run when confirmed' do
allow(subject).to receive(:mocked_method).and_return('mocked method')
expect(subject).to receive(:mocked_method)
subject.send(:get_confirm, @description) { subject.mocked_method }
end
- it "does not run the given block if not confirmed" do
+ it 'does not run the given block if not confirmed' do
allow(subject).to receive(:get).and_return('no')
expect(subject).not_to receive(:mocked_method)
subject.send(:get_confirm, @description) { subject.mocked_method }
end
end