FactoryBot.define do factory :board do transient do project nil group nil project_id nil group_id nil parent nil end after(:build, :stub) do |board, evaluator| if evaluator.group board.group = evaluator.group elsif evaluator.group_id board.group_id = evaluator.group_id elsif evaluator.project board.project = evaluator.project elsif evaluator.project_id board.project_id = evaluator.project_id elsif evaluator.parent id = evaluator.parent.id evaluator.parent.is_a?(Group) ? board.group_id = id : evaluator.project_id = id else board.project = create(:project, :empty_repo) end end after(:create) do |board| board.lists.create(list_type: :closed) end end end