diff --git a/lib/factory_girl/definition_proxy.rb b/lib/factory_girl/definition_proxy.rb index bd81108..c96fe2a 100644 --- a/lib/factory_girl/definition_proxy.rb +++ b/lib/factory_girl/definition_proxy.rb @@ -154,7 +154,8 @@ module FactoryGirl @child_factories << [name, options, block] end - def attr_group(name, &block) + def attr_group(name, options={}, &block) + factory(name, &block) if options.delete(:factory) @factory.define_attribute_group(AttributeGroup.new(name, &block)) end end diff --git a/spec/acceptance/attribute_groups_spec.rb b/spec/acceptance/attribute_groups_spec.rb index f2cf407..5753b78 100644 --- a/spec/acceptance/attribute_groups_spec.rb +++ b/spec/acceptance/attribute_groups_spec.rb @@ -9,7 +9,7 @@ describe "an instance generated by a factory with multiple attribute groups" do factory :user do name "John" - attr_group :admin do + attr_group :admin, :factory=>true do admin true end @@ -23,7 +23,6 @@ describe "an instance generated by a factory with multiple attribute groups" do gender "Female" end - factory :admin, :attr_groups => [:admin] factory :male, :attr_groups => [:male] factory :female, :attr_groups => [:female] do attr_group :admin do @@ -113,4 +112,9 @@ describe "an instance generated by a factory with multiple attribute groups" do its(:name) { should == "Bill" } its(:email) { should == "Bill@example.com"} end + + context "factory created from attribute group" do + subject { FactoryGirl.create(:admin) } + it { should be_admin } + end end