From ef70677e881855f1e7b51f158752e1ee78b27a96 Mon Sep 17 00:00:00 2001 From: Markus Reiter <me@reitermark.us> Date: Sun, 9 Oct 2016 18:03:15 +0200 Subject: [PATCH] Add test for `Formatter.columns`. --- Library/Homebrew/cask/spec/formatter_spec.rb | 56 ++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 Library/Homebrew/cask/spec/formatter_spec.rb diff --git a/Library/Homebrew/cask/spec/formatter_spec.rb b/Library/Homebrew/cask/spec/formatter_spec.rb new file mode 100644 index 0000000000..7e143d9331 --- /dev/null +++ b/Library/Homebrew/cask/spec/formatter_spec.rb @@ -0,0 +1,56 @@ +require "spec_helper" +require "utils/formatter" +require "utils/tty" + +describe Formatter do + describe "::columns" do + let(:input) { + [ + 'aa', + 'bbb', + 'ccc', + 'dd' + ] + } + subject { described_class.columns(input) } + + it "doesn't output columns if $stdout is not a TTY." do + allow_any_instance_of(IO).to receive(:tty?).and_return(false) + allow(Tty).to receive(:width).and_return(10) + + expect(subject).to eq( + "aa\n" \ + "bbb\n" \ + "ccc\n" \ + "dd\n" + ) + end + + describe "$stdout is a TTY" do + it "outputs columns" do + allow_any_instance_of(IO).to receive(:tty?).and_return(true) + allow(Tty).to receive(:width).and_return(10) + + expect(subject).to eq( + "aa ccc\n" \ + "bbb dd\n" + ) + end + + it "outputs only one line if everything fits" do + allow_any_instance_of(IO).to receive(:tty?).and_return(true) + allow(Tty).to receive(:width).and_return(20) + + expect(subject).to eq( + "aa bbb ccc dd\n" + ) + end + end + + describe "with empty input" do + let(:input) { [] } + + it { is_expected.to eq("\n") } + end + end +end -- GitLab