Sha256: 1d16d30fa06272e4cd1868028b8204614d8d499a3e47d51a06d38ad1d3e65e38

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

require "spec_helper"
require "support/generators_shared_examples"
require "generators/statesman/migration_generator"

describe Statesman::MigrationGenerator, type: :generator do
  it_behaves_like "a generator" do
    let(:migration_name) { 'db/migrate/add_statesman_to_bacon_transitions.rb' }
  end

  describe 'the model contains the correct words' do
    let(:migration_number) { '5678309' }

    let(:mock_time) do
      double('Time', utc: double('UTCTime', strftime: migration_number))
    end

    subject do
      file(
        "db/migrate/#{migration_number}_add_statesman_to_bacon_transitions.rb"
      )
    end

    before do
      allow(Time).to receive(:now).and_return(mock_time)
      run_generator %w(Yummy::Bacon Yummy::BaconTransition)
    end

    it { is_expected.to contain(/:bacon_transition/) }
    it { is_expected.not_to contain(/:yummy\/bacon/) }
    it { is_expected.to contain(/null: false/) }

    it "names the sorting index appropriately" do
      expect(subject).
        to contain("name: \"index_bacon_transitions_parent_sort\"")
    end

    it "names the most_recent index appropriately" do
      expect(subject).
        to contain("name: \"index_bacon_transitions_parent_most_recent\"")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
statesman-1.2.2 spec/generators/statesman/migration_generator_spec.rb
statesman-1.2.1 spec/generators/statesman/migration_generator_spec.rb
statesman-1.2.0 spec/generators/statesman/migration_generator_spec.rb