1
0
Fork 0
mirror of https://github.com/awesome-print/awesome_print synced 2023-03-27 23:22:34 -04:00
awesome_print/spec/colors_spec.rb
Mauro George 526f907629 Improves spec runner harness, switches to better env detection.
Does not run rails specs when running mongoid specs

WIP Start of remove BRE to check tests

Remove old helper of active record

Use RSpec skip to skip AR specs

Run ActionView only when needed

Run ActiveSupport only when needed

Run Mongoid only when needed

Create ExtVerifier.require_dependencies

Run MongoMapper only when needed

Always load nokogiri specs

Always load ostruct specs

Run Ripple only when needed

Remove :: when check for defined constants

Require spec_helper directly

Remove 1.8.6 old monkey patch

Add some RSpec configs
2015-01-02 13:20:18 -05:00

106 lines
2.7 KiB
Ruby

require 'spec_helper'
RSpec.describe "AwesomePrint" do
def stub_tty!(output = true, stream = STDOUT)
if output
stream.instance_eval { def tty?; true; end }
else
stream.instance_eval { def tty?; false; end }
end
end
before do
stub_dotfile!
end
describe "colorization" do
PLAIN = '[ 1, :two, "three", [ nil, [ true, false ] ] ]'
COLORIZED = "[ \e[1;34m1\e[0m, \e[0;36m:two\e[0m, \e[0;33m\"three\"\e[0m, [ \e[1;31mnil\e[0m, [ \e[1;32mtrue\e[0m, \e[1;31mfalse\e[0m ] ] ]"
before do
ENV['TERM'] = "xterm-colors"
ENV.delete('ANSICON')
@arr = [ 1, :two, "three", [ nil, [ true, false] ] ]
end
describe "default settings (no forced colors)" do
before do
AwesomePrint.force_colors! false
end
it "colorizes tty processes by default" do
stub_tty!
expect(@arr.ai(:multiline => false)).to eq(COLORIZED)
end
it "colorizes processes with ENV['ANSICON'] by default" do
begin
stub_tty!
term, ENV['ANSICON'] = ENV['ANSICON'], "1"
expect(@arr.ai(:multiline => false)).to eq(COLORIZED)
ensure
ENV['ANSICON'] = term
end
end
it "does not colorize tty processes running in dumb terminals by default" do
begin
stub_tty!
term, ENV['TERM'] = ENV['TERM'], "dumb"
expect(@arr.ai(:multiline => false)).to eq(PLAIN)
ensure
ENV['TERM'] = term
end
end
it "does not colorize subprocesses by default" do
begin
stub_tty! false
expect(@arr.ai(:multiline => false)).to eq(PLAIN)
ensure
stub_tty!
end
end
end
describe "forced colors override" do
before do
AwesomePrint.force_colors!
end
it "still colorizes tty processes" do
stub_tty!
expect(@arr.ai(:multiline => false)).to eq(COLORIZED)
end
it "colorizes processes with ENV['ANSICON'] set to 0" do
begin
stub_tty!
term, ENV['ANSICON'] = ENV['ANSICON'], "1"
expect(@arr.ai(:multiline => false)).to eq(COLORIZED)
ensure
ENV['ANSICON'] = term
end
end
it "colorizes dumb terminals" do
begin
stub_tty!
term, ENV['TERM'] = ENV['TERM'], "dumb"
expect(@arr.ai(:multiline => false)).to eq(COLORIZED)
ensure
ENV['TERM'] = term
end
end
it "colorizes subprocess" do
begin
stub_tty! false
expect(@arr.ai(:multiline => false)).to eq(COLORIZED)
ensure
stub_tty!
end
end
end
end
end