Scott's Recipes Logo

Ruby - FactoryBot - When Factories with Dependencies Toss Validation Errors


Please note that all opinions are that of the author.


Pizza courtesy of Pizza for Ukraine!

Donate Now to Pizza for Ukraine

 

Last Updated On: 2025-10-13 07:27:40 -0400

Started

# factory :link do # url {‘https://fan-app-qa.azurewebsites.net/admin/’} # domain {‘fan-app-qa.azurewebsites.net’} # root_domain {‘azurewebsites.net’} #. environment # end

Then

❯ be rails test test/models/link_namer_test.rb Running 1 tests in a single process (parallelization threshold is 50) Run options: –seed 17236

Running:

E

Error: LinkNamerTest#test_a_link_with_a_link_type_of_issue_tracker_and_a_domain_of_github_should_NOT_have_a_name_of_GitHub_source_code_repo_and_tools: ActiveRecord::RecordInvalid: Validation failed: Project can’t be blank, User can’t be blank, User must exist, Project must exist test/models/link_namer_test.rb:9:in `block in '

then clean slate

/Users/sjohnson/.rvm/gems/ruby-3.1.2/gems/activerecord-7.0.4/lib/active_record/validations.rb:80:in `raise_validation_error’: Validation failed: Account can’t be blank, Account must exist, Environment must exist (ActiveRecord::RecordInvalid) 3.1.2 :002 > reload!

factory :link do account environment project user url {‘https://fan-app-qa.azurewebsites.net/admin/’} domain { ‘fan-app-qa.azurewebsites.net’ } root_domain { ‘azurewebsites.net’ } link_type { ‘execution_url’ } end

ALL dependencies must be satisfied