Sha256: 7ef378d5415bfcea52f972f13ffaba012f2ad310cc5bbca60942a4931c220c73

Contents?: true

Size: 1.99 KB

Versions: 71

Compression:

Stored size: 1.99 KB

Contents

require 'spec_helper'

describe 'global initialize_with' do
  before do
    define_class('User') do
      attr_accessor:name

      def initialize(name)
        @name = name
      end
    end

    define_class('Post') do
      attr_reader :name

      def initialize(name)
        @name = name
      end
    end

    FactoryGirl.define do
      initialize_with { new("initialize_with") }

      trait :with_initialize_with do
        initialize_with { new("trait initialize_with") }
      end

      factory :user do
        factory :child_user

        factory :child_user_with_trait do
          with_initialize_with
        end
      end

      factory :post do
        factory :child_post

        factory :child_post_with_trait do
          with_initialize_with
        end
      end
    end
  end

  it 'handles base initialize_with' do
    FactoryGirl.build(:user).name.should == 'initialize_with'
    FactoryGirl.build(:post).name.should == 'initialize_with'
  end

  it 'handles child initialize_with' do
    FactoryGirl.build(:child_user).name.should == 'initialize_with'
    FactoryGirl.build(:child_post).name.should == 'initialize_with'
  end

  it 'handles child initialize_with with trait' do
    FactoryGirl.build(:child_user_with_trait).name.should == 'trait initialize_with'
    FactoryGirl.build(:child_post_with_trait).name.should == 'trait initialize_with'
  end

  it 'handles inline trait override' do
    FactoryGirl.build(:child_user, :with_initialize_with).name.should == 'trait initialize_with'
    FactoryGirl.build(:child_post, :with_initialize_with).name.should == 'trait initialize_with'
  end

  it 'uses initialize_with globally across FactoryGirl.define' do
    define_class('Company') do
      attr_reader :name

      def initialize(name)
        @name = name
      end
    end

    FactoryGirl.define do
      factory :company
    end

    FactoryGirl.build(:company).name.should == 'initialize_with'
    FactoryGirl.build(:company, :with_initialize_with).name.should == 'trait initialize_with'
  end
end

Version data entries

71 entries across 67 versions & 5 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.7.4 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.7.3 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.7.2 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.7.1 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.7.0 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
challah-1.0.0.beta vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
challah-0.9.1.beta.3 vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
challah-0.9.1.beta vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
challah-0.9.0 vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.6.9 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
challah-rolls-0.2.0 vendor/bundle/gems/challah-0.8.3/vendor/bundle/gems/factory_girl-4.0.0/spec/acceptance/global_initialize_with_spec.rb
challah-rolls-0.2.0 vendor/bundle/gems/factory_girl-4.0.0/spec/acceptance/global_initialize_with_spec.rb
challah-rolls-0.2.0 vendor/bundle/gems/challah-0.8.3/vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
challah-rolls-0.2.0 vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
challah-0.8.3 vendor/bundle/gems/factory_girl-4.0.0/spec/acceptance/global_initialize_with_spec.rb
challah-0.8.3 vendor/bundle/gems/factory_girl-4.1.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.6.8 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb
classiccms-0.6.7 vendor/bundle/gems/factory_girl-3.3.0/spec/acceptance/global_initialize_with_spec.rb