Sha256: 3cabdb4e41b2ad4289f8c9019c3075cd2170c5d968b835c8d06aabe1919289c9

Contents?: true

Size: 1.93 KB

Versions: 51

Compression:

Stored size: 1.93 KB

Contents

# frozen_string_literal: true

require_relative '../../../../lib/declare_schema/schema_change/index_add'

RSpec.describe DeclareSchema::SchemaChange::IndexAdd do
  before do
    load File.expand_path('../prepare_testapp.rb', __dir__)
  end

  let(:table_name) { 'users' }
  let(:column_names) { [:last_name, 'first_name'] }
  let(:name) { 'on_last_name_and_first_name' }
  let(:unique) { false }
  subject { described_class.new(table_name, column_names, name: name, unique: unique) }

  describe '#up/down' do
    describe '#up' do
      context 'without where:' do
        it 'responds with command' do
          expect(subject.up).to eq("add_index :#{table_name}, #{column_names.map(&:to_sym).inspect}, name: #{name.to_sym.inspect}\n")
        end
      end

      context 'with empty where:' do
        subject { described_class.new(table_name, column_names, name: name, unique: unique, where: nil) }

        it 'responds with command' do
          expect(subject.up).to eq("add_index :#{table_name}, #{column_names.map(&:to_sym).inspect}, name: #{name.to_sym.inspect}\n")
        end
      end

      context 'with where:' do
        let(:where) { "'last_name like 'A%'"}
        subject { described_class.new(table_name, column_names, name: name, unique: unique, where: where) }

        it 'responds with command' do
          expect(subject.up).to eq("add_index :#{table_name}, #{column_names.map(&:to_sym).inspect}, name: #{name.to_sym.inspect}, where: #{where.inspect}\n")
        end
      end

      context 'with unique: true' do
        let(:unique) { true }

        it 'responds with command' do
          expect(subject.up).to eq("add_index :#{table_name}, #{column_names.map(&:to_sym).inspect}, name: #{name.to_sym.inspect}, unique: true\n")
        end
      end
    end

    describe '#down' do
      it 'responds with command' do
        expect(subject.down).to eq("remove_index :#{table_name}, name: #{name.to_sym.inspect}\n")
      end
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
declare_schema-1.3.6 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.6.colin.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.5 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.5.colin.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.4 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.4.colin.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.3 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.3.colin.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.2 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.2.rp.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.1.colin.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.0 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.3.0.colin.1 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.2.3 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.2.3.pre.ga.11 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.2.3.pre.ga.10 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.2.3.pre.ga.9 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.2.3.pre.ga.8 spec/lib/declare_schema/schema_change/index_add_spec.rb
declare_schema-1.2.3.pre.ga.7 spec/lib/declare_schema/schema_change/index_add_spec.rb