Skip to content

Inconsistent behaviour with default schema values in factories #68

Description

@trafium

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions