Sha256: 00280a53fe78dfab1952ddd0b1976095a2393a6b7100624964a3922b45ccae38

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

# encoding: utf-8

require 'spec_helper'

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

  described_class::OPS.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

3 entries across 3 versions & 1 rubygems

Version Path
rubocop-0.21.0 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.20.1 spec/rubocop/cop/style/self_assignment_spec.rb
rubocop-0.20.0 spec/rubocop/cop/style/self_assignment_spec.rb