Sha256: 3a5c6e577e90e74ec852629e9fa5fdb82d293a9e7a74fbd9e477253117fced40

Contents?: true

Size: 1.28 KB

Versions: 5

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

RSpec.describe RuboCop::Cop::Sequel::ConcurrentIndex do
  include Spec::Helpers::Migration

  subject(:cop) { described_class.new }

  context 'without the concurrent option' do
    it 'registers an offense without options' do
      offenses = inspect_source_within_migration(<<~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_within_migration(<<~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_within_migration(<<~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_within_migration(<<~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.4.1 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.4.0 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.3.8 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.3.7 spec/rubocop/cop/sequel/concurrent_index_spec.rb
rubocop-sequel-0.3.6 spec/rubocop/cop/sequel/concurrent_index_spec.rb