rom-factory icon indicating copy to clipboard operation
rom-factory copied to clipboard

Inconsistent behaviour with default schema values in factories

Open trafium opened this issue 3 years ago • 1 comments

Describe the bug

I am using rom-rb with rom-sql and rom-factory. In short, a struct creation via factory (Factory.structs[:foo]) is not using default type value unless schema also has unrelated jsonb type field. Took me forever to isolate the source of issue to that jsonb type column 😅

To Reproduce

Example repo: https://github.com/trafium/rom_factory_bug

To run:

bundle exec rake db:create
bundle exec rake db:migrate
ruby test.rb

The output is:

#<Entities::Foo column_with_default=nil id=1 random_column=nil>
#<Entities::Bar column_with_default="default" id=1 random_column=nil>

Expected behavior

#<Entities::Foo column_with_default="default" id=1 random_column=nil>
#<Entities::Bar column_with_default="default" id=1 random_column=nil>

I am not sure what is the expected behaviour for rom-factory, but I would expect it should always use default values for factory structs creation.

My environment

  • Affects my production application: Not yet
  • Ruby version: 2.6.6
  • OS: MacOS 11.2.3

trafium avatar Jul 02 '21 11:07 trafium

Thanks for reporting and isolating the issue. I'm working on rom 6.0 at the moment but rom-factory will be greatly improved and upgraded along with rom 6.0. I will make sure all known issues are addressed, including this one.

solnic avatar Jul 19 '21 06:07 solnic