Sha256: aa3a9f7d527032601e361e1acc96d785c0979188c1ab9b9f1358a6972442d664

Contents?: true

Size: 1.73 KB

Versions: 4

Compression:

Stored size: 1.73 KB

Contents

# encoding: utf-8

require 'spec_helper'

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

      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

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubocop-0.8.3 spec/rubocop/cops/single_line_methods_spec.rb
rubocop-0.8.2 spec/rubocop/cops/single_line_methods_spec.rb
rubocop-0.8.1 spec/rubocop/cops/single_line_methods_spec.rb
rubocop-0.8.0 spec/rubocop/cops/single_line_methods_spec.rb