Sha256: 81057e3e5bf7f7998c750f35c5795abeeec61c5081ff6a4cf89677362bf64d6f
Contents?: true
Size: 1.94 KB
Versions: 5
Compression:
Stored size: 1.94 KB
Contents
module Fitting class Log def initialize(log, type) @log = log @type = type @error = nil @skip = false end def self.all logs = [] Dir["log/fitting*.log"].each do |file_path| testlog = File.read(file_path) testlog.split("\n").select { |f| f.include?('incoming request ') }.each do |test| logs.push(new(JSON.load(test.split('incoming request ')[1]), 'incoming')) end testlog.split("\n").select { |f| f.include?('outgoing request ') }.each do |test| logs.push(new(JSON.load(test.split('outgoing request ')[1]), 'outgoing')) end end logs.sort { |a, b| b.path <=> a.path } end def url "#{host}#{path}" end def path @log['path'] end def method @log['method'] end def status @log['response']['status'].to_s end def body @log['response']['body'] end def content_type @log['response']['content_type'] end def host @log['host'] || 'www.example.com' end def type @type end def access! print "\e[32m.\e[0m" end def pending! @skip = true print "\e[33m*\e[0m" end def failure!(error) @error = error print "\e[31mF\e[0m" end def error @error end def failure? @error.present? end def self.failure(logs) logs.select do |log| log.failure? end end def pending? @skip end def self.pending(logs) logs.select do |log| log.pending? end end def self.report(logs) puts "\n\n" Fitting::Log.failure(logs).each_with_index do |log, index| puts "\e[31m #{index + 1}) #{log.error.class} #{log.error.message}\n\n\e[0m" end print "\e[31m#{logs.size} examples, #{Fitting::Log.failure(logs).size} failure, #{Fitting::Log.pending(logs).size} pending\e[0m\n" end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
fitting-4.0.4 | lib/fitting/log.rb |
fitting-4.0.3 | lib/fitting/log.rb |
fitting-4.0.2 | lib/fitting/log.rb |
fitting-4.0.1 | lib/fitting/log.rb |
fitting-4.0.0 | lib/fitting/log.rb |