Sha256: 9ab5c389ae605685b40171e72346298eae4b6b0afc52488769a10166927bbd68

Contents?: true

Size: 1.84 KB

Versions: 7

Compression:

Stored size: 1.84 KB

Contents

# encoding: utf-8

require 'spec_helper'

module Rubocop
  module Cop
    module Style
      describe SingleLineMethods do
        let(:slm) { SingleLineMethods.new }
        before do
          SingleLineMethods.config = { 'AllowIfMethodIsEmpty' => true }
        end

        it 'registers an offence for a single-line method' do
          inspect_source(slm,
                         ['def some_method; body end',
                          'def link_to(name, url); {:name => name}; end',
                          'def @table.columns; super; end'])
          expect(slm.offences.map(&:message)).to eq(
            [SingleLineMethods::MSG] * 3)
        end

        it 'registers an offence for an empty method if so configured' do
          SingleLineMethods.config = { 'AllowIfMethodIsEmpty' => false }
          inspect_source(slm, ['def no_op; end',
                               'def self.resource_class=(klass); end',
                               'def @table.columns; end'])
          expect(slm.offences.size).to eq(3)
        end

        it 'accepts a single-line empty method if so configured' do
          SingleLineMethods.config = { 'AllowIfMethodIsEmpty' => true }
          inspect_source(slm, ['def no_op; end',
                               'def self.resource_class=(klass); end',
                               'def @table.columns; end'])
          expect(slm.offences).to be_empty
        end

        it 'accepts a multi-line method' do
          inspect_source(slm, ['def some_method',
                               '  body',
                               'end'])
          expect(slm.offences).to be_empty
        end

        it 'does not crash on an method with a capitalized name' do
          inspect_source(slm, ['def NoSnakeCase',
                               'end'])
          expect(slm.offences).to be_empty
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
rubocop-0.12.0 spec/rubocop/cop/style/single_line_methods_spec.rb
rubocop-0.11.1 spec/rubocop/cop/style/single_line_methods_spec.rb
rubocop-0.11.0 spec/rubocop/cops/style/single_line_methods_spec.rb
rubocop-0.10.0 spec/rubocop/cops/style/single_line_methods_spec.rb
rubocop-0.9.1 spec/rubocop/cops/style/single_line_methods_spec.rb
sabat-rubocop-0.9.0 spec/rubocop/cops/style/single_line_methods_spec.rb
rubocop-0.9.0 spec/rubocop/cops/style/single_line_methods_spec.rb