Sha256: 1099ddde2023e21f63cdc94b75a4982fe860d5c4b1d42d558d454c7ae94672f1

Contents?: true

Size: 1.67 KB

Versions: 2

Compression:

Stored size: 1.67 KB

Contents

# encoding: utf-8

require 'spec_helper'

module Rubocop
  module Cop
    module Style
      describe FavorUntilOverNegatedWhile do
        subject(:fav_until) { FavorUntilOverNegatedWhile.new }

        it 'registers an offence for while with exclamation point condition' do
          inspect_source(fav_until,
                         ['while !a_condition',
                          '  some_method',
                          'end',
                          'some_method while !a_condition',
                         ])
          expect(fav_until.messages).to eq(
            ['Favor until over while for negative conditions.'] * 2)
        end

        it 'registers an offence for while with "not" condition' do
          inspect_source(fav_until,
                         ['while (not a_condition)',
                          '  some_method',
                          'end',
                          'some_method while not a_condition'])
          expect(fav_until.messages).to eq(
            ['Favor until over while for negative conditions.'] * 2)
          expect(fav_until.offences.map(&:line)).to eq([1, 4])
        end

        it 'accepts an while where only part of the contition is negated' do
          inspect_source(fav_until,
                         ['while !a_condition && another_condition',
                          '  some_method',
                          'end',
                          'while not a_condition or another_condition',
                          '  some_method',
                          'end',
                          'some_method while not a_condition or other_cond'])
          expect(fav_until.messages).to be_empty
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rubocop-0.13.1 spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb
rubocop-0.13.0 spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb