Reputation: 2541
I am trying to write RSpec tests for legacy ROR app. I have following models
class Domain < ActiveRecord::Base
belongs to :account
...
end
class Account < ActiveRecord::Base
belongs to :domain
...
end
FactoryBot.define do
factory :domain do
name 'domain-1'
account { association :account, domain: @instance }
end
end
FactoryBot.define do
factory :account do
name 'account-1'
domain { association :domain, account: @instance }
end
end
I can create
FactoryBot.create(:domain)
but FactoryBot.create(:account)
fails with Domain can't be blank
Upvotes: 0
Views: 1551
Reputation: 412
in a normal scenario account and domain has one to many relation. so every domain has one account and account can have many domains.
class Domain < ActiveRecord::Base
belongs_to :account
...
end
class Account < ActiveRecord::Base
has_many :domains
...
end
your factories called each other recursively. it should work:
FactoryBot.define do
factory :domain do
name 'domain-1'
account
end
end
FactoryBot.define do
factory :account do
name 'account-1'
end
end
Upvotes: 4