Sha256: c3b380255beb4f02647bfe76d4f46a14ec4383cd88afb5a27ebd7f98a17811c6

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

require "spec_helper"

describe AlsoMigrate do
  
  describe 'fixture config' do
    
    before(:each) do
      $db.migrate(1)
      $db.migrate(0)
      $db.migrate(1)
    end
    
    it 'should migrate both tables up' do
      migrate_with_state(2)
      (@new_article_columns - @old_article_columns).should == [ 'permalink' ]
      (@new_archive_columns - @old_archive_columns).should == [ 'permalink' ]
    end
    
    it 'should migrate both tables down' do
      $db.migrate(2)
      migrate_with_state(1)
      (@old_article_columns - @new_article_columns).should == [ 'permalink' ]
      (@old_archive_columns - @new_archive_columns).should == [ 'permalink' ]
    end
    
    it "should ignore the body column column" do
      (columns('articles') - columns('article_archives')).should == [ 'body' ]
      connection.remove_column(:articles, :body)
      (columns('articles') - columns('article_archives')).should == []
    end
    
    it "should only add an index for id" do
      ActiveRecord::Migrator::AlsoMigrate.indexed_columns('articles').should == [ 'id', 'read' ]
      ActiveRecord::Migrator::AlsoMigrate.indexed_columns('article_archives').should == [ 'id' ]
    end
  end
  
  describe 'no index config' do
    
    before(:each) do
      Article.also_migrate_config = nil
      Article.also_migrate :article_archives
      $db.migrate(1)
      $db.migrate(0)
      $db.migrate(1)
    end
  
    it "should add all indexes" do
      ActiveRecord::Migrator::AlsoMigrate.indexed_columns('articles').should == [ 'id', 'read' ]
      ActiveRecord::Migrator::AlsoMigrate.indexed_columns('article_archives').should == [ 'id', 'read' ]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
also_migrate-0.1.0 spec/also_migrate_spec.rb