mirror of
https://github.com/awesome-print/awesome_print
synced 2023-03-27 23:22:34 -04:00
526f907629
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
106 lines
2.7 KiB
Ruby
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
|