Sha256: e049425c35ca30bafdae88a3aca37b16ddc87592e33cec4cf65ddf3c929b5629

Contents?: true

Size: 1.87 KB

Versions: 4

Compression:

Stored size: 1.87 KB

Contents

# encoding: utf-8

require 'spec_helper'
require 'stringio'

module RuboCop
  module Formatter
    describe EmacsStyleFormatter do
      subject(:formatter) { described_class.new(output) }
      let(:output) { StringIO.new }

      describe '#file_finished' do
        it 'displays parsable text' do
          cop = Cop::Cop.new
          source_buffer = Parser::Source::Buffer.new('test', 1)
          source_buffer.source = %w(a b cdefghi).join("\n")

          cop.add_offense(nil,
                          Parser::Source::Range.new(source_buffer, 0, 1),
                          'message 1')
          cop.add_offense(nil,
                          Parser::Source::Range.new(source_buffer, 9, 10),
                          'message 2')

          formatter.file_finished('test', cop.offenses)
          expect(output.string).to eq ['test:1:1: C: message 1',
                                       "test:3:6: C: message 2\n"].join("\n")
        end

        context 'when the offense is automatically corrected' do
          let(:file) { '/path/to/file' }

          let(:offense) do
            Cop::Offense.new(:convention, location,
                             'This is a message.', 'CopName', corrected)
          end

          let(:location) do
            source_buffer = Parser::Source::Buffer.new('test', 1)
            source_buffer.source = "a\n"
            Parser::Source::Range.new(source_buffer, 0, 1)
          end

          let(:corrected) { true }

          it 'prints [Corrected] along with message' do
            formatter.file_finished(file, [offense])
            expect(output.string)
              .to include(': [Corrected] This is a message.')
          end
        end
      end

      describe '#finished' do
        it 'does not report summary' do
          formatter.finished(['/path/to/file'])
          expect(output.string).to be_empty
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubocop-0.25.0 spec/rubocop/formatter/emacs_style_formatter_spec.rb
rubocop-0.24.1 spec/rubocop/formatter/emacs_style_formatter_spec.rb
rubocop-0.24.0 spec/rubocop/formatter/emacs_style_formatter_spec.rb
rubocop-0.23.0 spec/rubocop/formatter/emacs_style_formatter_spec.rb