Sha256: ff162d48c0c0a1a72e411b2bc24493b795603c50dcf1f92e5d6a6f856d6b79da

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

require 'spec_helper'

describe ActiveRecord::Migration do

  before(:each) do
    define_schema do
      create_table :posts, :force => true do |t|
        t.string :content
      end
    end
    class Post < ::ActiveRecord::Base ; end
  end

  context "when table is created" do

    before(:each) do
      @model = Post
    end

    it "should properly handle default values for booleans" do
      expect {
        recreate_table(@model) do |t|
          t.boolean :bool, :default => true
        end
      }.to_not raise_error
      expect(@model.create.reload.bool).to be true
    end

    it "should properly handle default values for json (#195)", :postgresql => :only do
      recreate_table(@model) do |t|
        t.json :json, :default => {}
      end
      expect(@model.create.reload.json).to eq({})
    end

  end

  def recreate_table(model, opts={}, &block)
    ActiveRecord::Migration.suppress_messages do
      ActiveRecord::Migration.create_table model.table_name, opts.merge(:force => true), &block
    end
    model.reset_column_information
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
schema_plus_default_expr-0.1.5 spec/migration_spec.rb
schema_plus_default_expr-0.1.4 spec/migration_spec.rb
schema_plus_default_expr-0.1.3 spec/migration_spec.rb
schema_plus_default_expr-0.1.2 spec/migration_spec.rb
schema_plus_default_expr-0.1.1 spec/migration_spec.rb
schema_plus_default_expr-0.1.0 spec/migration_spec.rb