# frozen_string_literal: true FactoryBot.define do factory :user do sequence(:screen_name) { |i| "#{Faker::Internet.username(specifier: 0..12, separators: %w[_])}#{i}" } sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } password { 'P4s5w0rD' } confirmed_at { Time.now.utc } transient do roles { [] } profile { { display_name: Faker::Name.name } } end after(:create) do |user, evaluator| evaluator.roles.each do |role| user.add_role role end evaluator.profile.each do |key, value| user.profile.public_send(:"#{key}=", value) end end end end