class Jasmine::Formatters::Console
Attributes
outputter[R]
results[R]
Public Class Methods
new(config, outputter = Kernel)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 4 def initialize(config, outputter = Kernel) @config = config @results = [] @outputter = outputter end
Public Instance Methods
done(run_details)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 15 def done(run_details) outputter.puts run_result = global_failure_details(run_details) failure_count = results.count(&:failed?) if failure_count > 0 outputter.puts('Failures:') outputter.puts(failures(@results)) outputter.puts end pending_count = results.count(&:pending?) if pending_count > 0 outputter.puts('Pending:') outputter.puts(pending(@results)) outputter.puts end deprecationWarnings = (@results + [run_result]).map(&:deprecation_warnings).flatten if deprecationWarnings.size > 0 outputter.puts('Deprecations:') outputter.puts(deprecations(deprecationWarnings)) outputter.puts end summary = "#{pluralize(results.size, 'spec')}, " + "#{pluralize(failure_count, 'failure')}" summary += ", #{pluralize(pending_count, 'pending spec')}" if pending_count > 0 outputter.puts(summary) if run_details['overallStatus'] == 'incomplete' outputter.puts("Incomplete: #{run_details['incompleteReason']}") end if run_details['order'] && run_details['order']['random'] seed = run_details['order']['seed'] outputter.puts("Randomized with seed #{seed} \(rake jasmine:ci\[true,#{seed}])") end end
format(results_batch)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 10 def format(results_batch) outputter.print(chars(results_batch)) @results += results_batch end
Private Instance Methods
chars(results)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 92 def chars(results) results.map do |result| if result.succeeded? colored(:green, '.') elsif result.pending? colored(:yellow, '*') elsif result.disabled? "" else colored(:red, 'F') end end.join('') end
colored(color, message)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 135 def colored(color, message) s = case color when :green "\e[32m" when :yellow "\e[33m" when :red "\e[31m" else "\e[0m" end if @config.color "#{s}#{message}\e[0m" else message end end
deprecations(warnings)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 69 def deprecations(warnings) warnings.map { |w| expectation_message(w) }.join("\n\n") end
expectation_message(expectation)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 122 def expectation_message(expectation) <<-FE Message: #{colored(:red, expectation.message)} Stack: #{stack(expectation.stack)} FE end
failure_message(failure)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 118 def failure_message(failure) failure.full_name + "\n" + failure.failed_expectations.map { |fe| expectation_message(fe) }.join("\n") end
failures(results)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 61 def failures(results) results.select(&:failed?).map { |f| failure_message(f) }.join("\n\n") end
global_failure_details(run_details)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 73 def global_failure_details(run_details) result = Jasmine::Result.new(run_details.merge('fullName' => 'Error occurred in afterAll', 'description' => '')) if (result.failed_expectations.size > 0) (loadFails, afterAllFails) = result.failed_expectations.partition {|e| e.globalErrorType == 'load' } report_global_failures('Error during loading', loadFails) report_global_failures('Error occurred in afterAll', afterAllFails) end result end
pending(results)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 65 def pending(results) results.select(&:pending?).map { |spec| pending_message(spec) }.join("\n\n") end
pending_message(spec)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 111 def pending_message(spec) reason = 'No reason given' reason = spec.pending_reason if spec.pending_reason && spec.pending_reason != '' "\t#{spec.full_name}\n\t #{colored(:yellow, reason)}" end
pluralize(count, str)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 106 def pluralize(count, str) word = (count == 1) ? str : str + 's' "#{count} #{word}" end
report_global_failures(prefix, fails)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 84 def report_global_failures(prefix, fails) if fails.size > 0 fail_result = Jasmine::Result.new('fullName' => prefix, 'description' => '', 'failedExpectations' => fails) outputter.puts(failure_message(fail_result)) outputter.puts end end
stack(stack)
click to toggle source
# File lib/jasmine/formatters/console.rb, line 131 def stack(stack) stack.split("\n").map(&:strip).join("\n ") end