Sha256: 0ba27017651b197af7ecf41dd26a71c5b378dec378558f68f7e320984a5dc15d

Contents?: true

Size: 978 Bytes

Versions: 11

Compression:

Stored size: 978 Bytes

Contents

# frozen_string_literal: true

module Undercover
  class Formatter
    def initialize(results)
      @results = results
    end

    def to_s
      return success unless @results.any?

      ([warnings_header] + formatted_warnings).join("\n")
    end

    private

    def formatted_warnings
      @results.map.with_index(1) do |res, idx|
        "🚨 #{idx}) node `#{res.node.name}` type: #{res.node.human_name},\n" +
          (' ' * pad_size) + "loc: #{res.file_path_with_lines}," \
          " coverage: #{res.coverage_f * 100}%\n" +
          res.pretty_print
      end
    end

    def success
      "#{Rainbow('undercover').bold.green}: ✅ No coverage" \
      ' is missing in latest changes'
    end

    def warnings_header
      "#{Rainbow('undercover').bold.red}: " \
      '👮‍♂️ some methods have no test coverage! Please add specs for' \
      ' methods listed below'
    end

    def pad_size
      5 + (@results.size - 1).to_s.length
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
undercover-0.4.3 lib/undercover/formatter.rb
undercover-0.4.1 lib/undercover/formatter.rb
undercover-0.4.0 lib/undercover/formatter.rb
undercover-0.3.4 lib/undercover/formatter.rb
undercover-0.3.3 lib/undercover/formatter.rb
undercover-0.3.2 lib/undercover/formatter.rb
undercover-0.3.1 lib/undercover/formatter.rb
undercover-0.3.0 lib/undercover/formatter.rb
undercover-0.2.3 lib/undercover/formatter.rb
undercover-0.2.2 lib/undercover/formatter.rb
undercover-0.2.1 lib/undercover/formatter.rb