Sha256: c79b4567368ce65e156f29d0023c8fe9fb336809a73761bac1f30b290cd2328f

Contents?: true

Size: 1.39 KB

Versions: 11

Compression:

Stored size: 1.39 KB

Contents

# encoding: utf-8

require 'spec_helper'

describe RuboCop::Cop::Style::SelfAssignment do
  subject(:cop) { described_class.new }

  [:+, :-, :*, :**, :/, :|, :&].product(['x', '@x', '@@x']).each do |op, var|
    it "registers an offense for non-shorthand assignment #{op} and #{var}" do
      inspect_source(cop,
                     ["#{var} = #{var} #{op} y"])
      expect(cop.offenses.size).to eq(1)
      expect(cop.messages)
        .to eq(["Use self-assignment shorthand `#{op}=`."])
    end

    it "accepts shorthand assignment for #{op} and #{var}" do
      inspect_source(cop,
                     ["#{var} = #{var} #{op} y"])
      expect(cop.offenses.size).to eq(1)
      expect(cop.messages)
        .to eq(["Use self-assignment shorthand `#{op}=`."])
    end
  end

  ['||', '&&'].product(['x', '@x', '@@x']).each do |op, var|
    it "registers an offense for non-shorthand assignment #{op} and #{var}" do
      inspect_source(cop,
                     ["#{var} = #{var} #{op} y"])
      expect(cop.offenses.size).to eq(1)
      expect(cop.messages)
        .to eq(["Use self-assignment shorthand `#{op}=`."])
    end

    it "accepts shorthand assignment for #{op} and #{var}" do
      inspect_source(cop,
                     ["#{var} = #{var} #{op} y"])
      expect(cop.offenses.size).to eq(1)
      expect(cop.messages)
        .to eq(["Use self-assignment shorthand `#{op}=`."])
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
rubyjobbuilderdsl-0.0.2 vendor/bundle/ruby/2.1.0/gems/rubocop-0.26.0/spec/rubocop/cop/style/self_assignment_spec.rb
rubyjobbuilderdsl-0.0.1 vendor/bundle/ruby/2.1.0/gems/rubocop-0.26.0/spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.28.0 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.27.1 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.27.0 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.26.1 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.26.0 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.25.0 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.24.1 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.24.0 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.23.0 spec/rubocop/cop/style/self_assignment_spec.rb