Sha256: cdfec9951cbf0ddd451da2898c782cbb103a453593a2656f5d411d3f8b040acb

Contents?: true

Size: 1.2 KB

Versions: 5

Compression:

Stored size: 1.2 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

describe RuboCop::Cop::Sequel::ConcurrentIndex do
  subject(:cop) { described_class.new }

  context 'without the concurrent option' do
    it 'registers an offense without options' do
      offenses = inspect_source(<<~SOURCE)
        add_index(:products, :name)
        drop_index(:products, :name)
      SOURCE
      expect(offenses.size).to eq(2)
    end

    it 'registers an offense with other options' do
      offenses = inspect_source(<<~SOURCE)
        add_index(:products, :name, unique: true)
        drop_index(:products, :name, unique: true)
      SOURCE
      expect(offenses.size).to eq(2)
    end

    it 'registers an offense with composite index' do
      offenses = inspect_source(<<~SOURCE)
        add_index(:products, [:name, :price], unique: true)
        drop_index(:products, [:name, :price])
      SOURCE
      expect(offenses.size).to eq(2)
    end
  end

  it 'does not register an offense when using concurrent option' do
    offenses = inspect_source(<<~SOURCE)
      add_index(:products, :name, unique: true, concurrently: true)
      drop_index(:products, :name, concurrently: true)
    SOURCE
    expect(offenses).to be_empty
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubocop-sequel-0.3.4 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.3.3 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.3.1 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.3.0 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.2.0 spec/rubocop/cop/sequel/concurrent_index_spec.rb