minitest-heat 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/lib/minitest/heat/issue.rb +2 -2
- data/lib/minitest/heat/output.rb +65 -58
- data/lib/minitest/heat/version.rb +1 -1
- data/lib/minitest/heat_reporter.rb +8 -2
- data/minitest-heat.gemspec +1 -0
- metadata +16 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: dc3d70999fca25317d7ff7a96b67cd2c6ee6f59970054b0eaec88c051581b855
         | 
| 4 | 
            +
              data.tar.gz: 1197c05fe06b12737b2c73c27d7266e986fcae22cd3957b3e64cd14e2e70295f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 207f670e0e27dedb872c8251e3890043955c60b6dd6e7dbafce1ba11fd9de5dde20ecf902ac0afd7fa5338d846afa9bc0c2f498df1ca5cdf83b964865792075f
         | 
| 7 | 
            +
              data.tar.gz: c7d3219eb7c7d357a6bdeb82695356f2b56f1bc0f617ed9a9719c3c8227ca9b9bbf0c4929c14d75eed60ce6eade8552f693ad689d6b71c057fc08015a3d38828
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,13 +1,14 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                minitest-heat (0.0. | 
| 4 | 
            +
                minitest-heat (0.0.3)
         | 
| 5 5 | 
             
                  minitest
         | 
| 6 6 |  | 
| 7 7 | 
             
            GEM
         | 
| 8 8 | 
             
              remote: https://rubygems.org/
         | 
| 9 9 | 
             
              specs:
         | 
| 10 10 | 
             
                coderay (1.1.3)
         | 
| 11 | 
            +
                dead_end (1.1.7)
         | 
| 11 12 | 
             
                docile (1.4.0)
         | 
| 12 13 | 
             
                method_source (1.0.0)
         | 
| 13 14 | 
             
                minitest (5.14.4)
         | 
| @@ -26,6 +27,7 @@ PLATFORMS | |
| 26 27 | 
             
              ruby
         | 
| 27 28 |  | 
| 28 29 | 
             
            DEPENDENCIES
         | 
| 30 | 
            +
              dead_end
         | 
| 29 31 | 
             
              minitest (~> 5.0)
         | 
| 30 32 | 
             
              minitest-heat!
         | 
| 31 33 | 
             
              pry
         | 
    
        data/lib/minitest/heat/issue.rb
    CHANGED
    
    | @@ -100,7 +100,7 @@ module Minitest | |
| 100 100 | 
             
                      # When the exception came out of the test itself, that's a different kind of exception
         | 
| 101 101 | 
             
                      # that really only indicates there's a problem with the code in the test. It's kind of
         | 
| 102 102 | 
             
                      # between an error and a test.
         | 
| 103 | 
            -
                      ' | 
| 103 | 
            +
                      'Test Error'
         | 
| 104 104 | 
             
                    elsif error? || !passed?
         | 
| 105 105 | 
             
                      failure.result_label
         | 
| 106 106 | 
             
                    elsif slow?
         | 
| @@ -116,7 +116,7 @@ module Minitest | |
| 116 116 | 
             
                    when :error then   'E'
         | 
| 117 117 | 
             
                    when :skipped then 'S'
         | 
| 118 118 | 
             
                    when :failure then 'F'
         | 
| 119 | 
            -
                    when :slow then    ' | 
| 119 | 
            +
                    when :slow then    '_'
         | 
| 120 120 | 
             
                    else               '.'
         | 
| 121 121 | 
             
                    end
         | 
| 122 122 | 
             
                  end
         | 
    
        data/lib/minitest/heat/output.rb
    CHANGED
    
    | @@ -4,87 +4,96 @@ module Minitest | |
| 4 4 | 
             
              module Heat
         | 
| 5 5 | 
             
                # Friendly API for printing nicely-formatted output to the console
         | 
| 6 6 | 
             
                class Output
         | 
| 7 | 
            -
                   | 
| 8 | 
            -
                    STYLES = {
         | 
| 9 | 
            -
                      error:   %i[bold red],
         | 
| 10 | 
            -
                      broken:  %i[bold red],
         | 
| 11 | 
            -
                      failure: %i[default red],
         | 
| 12 | 
            -
                      skipped: %i[bold yellow],
         | 
| 13 | 
            -
                      success: %i[default green],
         | 
| 14 | 
            -
                      slow:    %i[bold green],
         | 
| 15 | 
            -
                      source:  %i[italic default],
         | 
| 16 | 
            -
                      bold:    %i[bold default],
         | 
| 17 | 
            -
                      default: %i[default default],
         | 
| 18 | 
            -
                      subtle:  %i[light white],
         | 
| 19 | 
            -
                      muted:   %i[light gray],
         | 
| 20 | 
            -
                    }.freeze
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                    WEIGHTS = {
         | 
| 23 | 
            -
                      default: 0,
         | 
| 24 | 
            -
                      bold: 1,
         | 
| 25 | 
            -
                      light: 2,
         | 
| 26 | 
            -
                      italic: 3,
         | 
| 27 | 
            -
                      underline: 4,
         | 
| 28 | 
            -
                      frame: 51,
         | 
| 29 | 
            -
                      encircle: 52,
         | 
| 30 | 
            -
                      overline: 53,
         | 
| 31 | 
            -
                    }.freeze
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                    COLORS = {
         | 
| 34 | 
            -
                      black: 30,
         | 
| 35 | 
            -
                      red: 31,
         | 
| 36 | 
            -
                      green: 32,
         | 
| 37 | 
            -
                      yellow: 33,
         | 
| 38 | 
            -
                      blue: 34,
         | 
| 39 | 
            -
                      magenta: 35,
         | 
| 40 | 
            -
                      cyan: 36,
         | 
| 41 | 
            -
                      gray: 37, white: 97,
         | 
| 42 | 
            -
                      default: 39,
         | 
| 43 | 
            -
                    }.freeze
         | 
| 7 | 
            +
                  ESC = "\e["
         | 
| 44 8 |  | 
| 9 | 
            +
                  Token = Struct.new(:style, :content) do
         | 
| 45 10 | 
             
                    def to_s
         | 
| 46 | 
            -
                       | 
| 11 | 
            +
                      [
         | 
| 12 | 
            +
                        style_string,
         | 
| 13 | 
            +
                        content,
         | 
| 14 | 
            +
                        reset_string
         | 
| 15 | 
            +
                      ].join
         | 
| 47 16 | 
             
                    end
         | 
| 48 17 |  | 
| 49 18 | 
             
                    private
         | 
| 50 19 |  | 
| 51 | 
            -
                    def  | 
| 52 | 
            -
                       | 
| 20 | 
            +
                    def style_string
         | 
| 21 | 
            +
                      "#{ESC}#{weight};#{color}m"
         | 
| 53 22 | 
             
                    end
         | 
| 54 23 |  | 
| 55 | 
            -
                    def  | 
| 56 | 
            -
                       | 
| 24 | 
            +
                    def reset_string
         | 
| 25 | 
            +
                      "#{ESC}0m"
         | 
| 26 | 
            +
                    end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    def weight_key
         | 
| 29 | 
            +
                      style_components[0]
         | 
| 30 | 
            +
                    end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                    def color_key
         | 
| 33 | 
            +
                      style_components[1]
         | 
| 57 34 | 
             
                    end
         | 
| 58 35 |  | 
| 59 | 
            -
                    def  | 
| 60 | 
            -
                       | 
| 36 | 
            +
                    def weight
         | 
| 37 | 
            +
                      {
         | 
| 38 | 
            +
                        default: 0,
         | 
| 39 | 
            +
                        bold: 1,
         | 
| 40 | 
            +
                        light: 2,
         | 
| 41 | 
            +
                        italic: 3
         | 
| 42 | 
            +
                      }.fetch(weight_key)
         | 
| 43 | 
            +
                    end
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    def color
         | 
| 46 | 
            +
                      {
         | 
| 47 | 
            +
                        black: 30,
         | 
| 48 | 
            +
                        red: 31,
         | 
| 49 | 
            +
                        green: 32,
         | 
| 50 | 
            +
                        yellow: 33,
         | 
| 51 | 
            +
                        blue: 34,
         | 
| 52 | 
            +
                        magenta: 35,
         | 
| 53 | 
            +
                        cyan: 36,
         | 
| 54 | 
            +
                        gray: 37,
         | 
| 55 | 
            +
                        default: 39
         | 
| 56 | 
            +
                      }.fetch(color_key)
         | 
| 61 57 | 
             
                    end
         | 
| 62 58 |  | 
| 63 59 | 
             
                    def style_components
         | 
| 64 | 
            -
                       | 
| 60 | 
            +
                      {
         | 
| 61 | 
            +
                        success_bold: %i[bold green],
         | 
| 62 | 
            +
                        success: %i[default green],
         | 
| 63 | 
            +
                        slow: %i[default green],
         | 
| 64 | 
            +
                        error: %i[bold red],
         | 
| 65 | 
            +
                        broken: %i[bold red],
         | 
| 66 | 
            +
                        failure: %i[default red],
         | 
| 67 | 
            +
                        skipped: %i[bold yellow],
         | 
| 68 | 
            +
                        warning_light: %i[light yellow],
         | 
| 69 | 
            +
                        source: %i[italic default],
         | 
| 70 | 
            +
                        bold: %i[bold default],
         | 
| 71 | 
            +
                        default: %i[default default],
         | 
| 72 | 
            +
                        muted: %i[light gray]
         | 
| 73 | 
            +
                      }.fetch(style)
         | 
| 65 74 | 
             
                    end
         | 
| 66 75 | 
             
                  end
         | 
| 67 76 |  | 
| 68 77 | 
             
                  FORMATTERS = {
         | 
| 69 78 | 
             
                    error: [
         | 
| 70 | 
            -
                      [ %i[error label], %i[muted  | 
| 79 | 
            +
                      [ %i[error label], %i[muted arrow], %i[default test_name] ],
         | 
| 71 80 | 
             
                      [ %i[default summary], ],
         | 
| 72 81 | 
             
                      [ %i[default backtrace_summary] ],
         | 
| 73 82 | 
             
                    ],
         | 
| 74 83 | 
             
                    broken: [
         | 
| 75 | 
            -
                      [ %i[broken label], %i[muted spacer], %i[ | 
| 84 | 
            +
                      [ %i[broken label], %i[muted spacer], %i[default test_class], %i[muted arrow], %i[default test_name] ],
         | 
| 76 85 | 
             
                      [ %i[default summary], ],
         | 
| 77 86 | 
             
                      [ %i[default backtrace_summary] ],
         | 
| 78 87 | 
             
                    ],
         | 
| 79 88 | 
             
                    failure: [
         | 
| 80 | 
            -
                      [ %i[failure label], %i[muted spacer], %i[ | 
| 89 | 
            +
                      [ %i[failure label], %i[muted spacer], %i[default test_class], %i[muted arrow], %i[default test_name], %i[muted spacer], %i[muted class] ],
         | 
| 81 90 | 
             
                      [ %i[default summary] ],
         | 
| 82 | 
            -
                      [ %i[ | 
| 91 | 
            +
                      [ %i[muted location], ],
         | 
| 83 92 | 
             
                      [ %i[default source_summary], ],
         | 
| 84 93 | 
             
                    ],
         | 
| 85 94 | 
             
                    skipped: [
         | 
| 86 | 
            -
                      [ %i[skipped label], %i[muted spacer], %i[ | 
| 87 | 
            -
                      [ %i[default summary] | 
| 95 | 
            +
                      [ %i[skipped label], %i[muted spacer], %i[default test_class], %i[muted arrow], %i[default test_name] ],
         | 
| 96 | 
            +
                      [ %i[default summary] ],
         | 
| 88 97 | 
             
                      [], # New Line
         | 
| 89 98 | 
             
                    ],
         | 
| 90 99 | 
             
                    slow: [
         | 
| @@ -118,7 +127,7 @@ module Minitest | |
| 118 127 | 
             
                    when 'B' then text(:failure, value)
         | 
| 119 128 | 
             
                    when 'F' then text(:failure, value)
         | 
| 120 129 | 
             
                    when 'S' then text(:skipped, value)
         | 
| 121 | 
            -
                    when ' | 
| 130 | 
            +
                    when '_' then text(:success, value)
         | 
| 122 131 | 
             
                    else          text(:success, value)
         | 
| 123 132 | 
             
                    end
         | 
| 124 133 | 
             
                  end
         | 
| @@ -156,8 +165,6 @@ module Minitest | |
| 156 165 | 
             
                      text(:broken, 'B' * values[:broken].size) if values[:broken]&.any?
         | 
| 157 166 | 
             
                      text(:failure, 'F' * values[:failure].size) if values[:failure]&.any?
         | 
| 158 167 | 
             
                      text(:skipped, 'S' * values[:skipped].size) if values[:skipped]&.any?
         | 
| 159 | 
            -
                      text(:slow, 'S' * values[:skipped].size) if values[:skipped]&.any?
         | 
| 160 | 
            -
             | 
| 161 168 | 
             
                      text(:muted, ' ')
         | 
| 162 169 |  | 
| 163 170 | 
             
                      text(:muted, "#{path.delete_prefix('/')}")
         | 
| @@ -169,7 +176,7 @@ module Minitest | |
| 169 176 | 
             
                      all_line_numbers += values.fetch(:skipped, [])
         | 
| 170 177 |  | 
| 171 178 | 
             
                      line_numbers = all_line_numbers.compact.uniq.sort
         | 
| 172 | 
            -
                      line_numbers.each { |line_number| text(: | 
| 179 | 
            +
                      line_numbers.each { |line_number| text(:muted, "#{line_number} ") }
         | 
| 173 180 | 
             
                      newline
         | 
| 174 181 | 
             
                    end
         | 
| 175 182 | 
             
                    newline
         | 
| @@ -191,7 +198,7 @@ module Minitest | |
| 191 198 | 
             
                    text(:default, counts.join(', '))
         | 
| 192 199 |  | 
| 193 200 | 
             
                    newline
         | 
| 194 | 
            -
                    text(: | 
| 201 | 
            +
                    text(:muted, "#{results.tests_per_second} tests/s and #{results.assertions_per_second} assertions/s ")
         | 
| 195 202 |  | 
| 196 203 | 
             
                    newline
         | 
| 197 204 | 
             
                    text(:muted, pluralize(results.test_count, 'Test') + ' & ')
         | 
| @@ -218,7 +225,7 @@ module Minitest | |
| 218 225 | 
             
                      source = Minitest::Heat::Source.new(filename, line_number: line.number, max_line_count: 1)
         | 
| 219 226 |  | 
| 220 227 | 
             
                      text(:muted, "  #{line.path.delete_prefix("#{Dir.pwd}/")}/")
         | 
| 221 | 
            -
                      text(: | 
| 228 | 
            +
                      text(:muted, "#{line.file}:#{line.number}")
         | 
| 222 229 | 
             
                      text(:source, " `#{source.line.strip}`")
         | 
| 223 230 |  | 
| 224 231 | 
             
                      newline
         | 
| @@ -242,7 +249,7 @@ module Minitest | |
| 242 249 | 
             
                      number_style, line_style = if line == source.line && highlight_line
         | 
| 243 250 | 
             
                                                   [:default, :default]
         | 
| 244 251 | 
             
                                                 else
         | 
| 245 | 
            -
                                                   [: | 
| 252 | 
            +
                                                   [:muted, :muted]
         | 
| 246 253 | 
             
                                                 end
         | 
| 247 254 | 
             
                      text(number_style, "#{' ' * indentation}#{line_number.to_s.rjust(max_line_number_length)} ")
         | 
| 248 255 | 
             
                      text(line_style, line)
         | 
| @@ -80,8 +80,14 @@ module Minitest | |
| 80 80 | 
             
                  #   pressing issues are displayed at the bottom of the report in order to reduce scrolling.
         | 
| 81 81 | 
             
                  #   This way, as you fix issues, the list gets shorter, and eventually the least critical
         | 
| 82 82 | 
             
                  #   issues will be displayed without scrolling once more problematic issues are resolved.
         | 
| 83 | 
            -
                  results. | 
| 84 | 
            -
             | 
| 83 | 
            +
                  if results.failures.empty? && results.brokens.empty? && results.errors.empty? && results.skips.empty?
         | 
| 84 | 
            +
                    results.slows.each { |issue| output.issue_details(issue) }
         | 
| 85 | 
            +
                  end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                  if results.failures.empty? && results.brokens.empty? && results.errors.empty?
         | 
| 88 | 
            +
                    results.skips.each { |issue| output.issue_details(issue) }
         | 
| 89 | 
            +
                  end
         | 
| 90 | 
            +
             | 
| 85 91 | 
             
                  results.failures.each { |issue| output.issue_details(issue) }
         | 
| 86 92 | 
             
                  results.brokens.each { |issue| output.issue_details(issue) }
         | 
| 87 93 | 
             
                  results.errors.each { |issue| output.issue_details(issue) }
         | 
    
        data/minitest-heat.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: minitest-heat
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Garrett Dimon
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-08- | 
| 11 | 
            +
            date: 2021-08-30 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: minitest
         | 
| @@ -24,6 +24,20 @@ dependencies: | |
| 24 24 | 
             
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: dead_end
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ">="
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            +
                    version: '0'
         | 
| 34 | 
            +
              type: :development
         | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ">="
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: '0'
         | 
| 27 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 42 | 
             
              name: pry
         | 
| 29 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         |