0

FactoryGirlを使用して作成すると、未確認期間の後にユーザを作成/作成するにはどうすればよいですか?未確認期間後にFactoryGirlをユーザに割り当てよう

は、私が最初に私が工夫」active_for_authenticationが実際にしかし前に、まだconfirmation_sent_atに設定されるだろう作成時のように助けにはならなかったいくつかの週にconfirmation_sent_atを設定し、confirmation_sent_atに基づいた実現いくつかの一週間前に:created_atを設定しようとしていますTime.now

私はこの confirmation_sent_atが設定されている場所とき/理解したいと思います

(私も実際にsend_confirmation_instructions!を呼び出すと、メールを再送し、このconfirmation_sent_at`をリセットすることを恐れていたが、これはそうではありませんでした...)

さらに重要なのは、有効なFactoryGirlその確認されていないアクセス期間の後に確認されていないユーザーを作成します。ここで

である私の工場は、これまで

FactoryGirl.define do 
    factory :user do 
    created_at  { Time.now } 
    password   'qsdfghjklmù' 
    confirmed_at  nil 
    sequence(:email) do |n| 
     Faker::Internet.email(first_name.gsub(/[^\w]/, '_') + n.to_s) 
    end 

    transient do 
     confirmed true 
    end 

    after(:build) do |user, evaluator| 
     if evaluator.confirmed 
     user.skip_confirmation! 
     user.skip_reconfirmation! 
     end 
    end 

    before(:create) do |user, evaluator| 
     if evaluator.confirmed 
     user.skip_confirmation! 
     user.skip_reconfirmation! 
     end 
    end 

    trait :unconfirmed do 
     confirmed false 
    end 

    trait :after_unconfirmation_period do 
     confirmation_sent_at do 
     rand((User.allow_unconfirmed_access_for || 1.day).ago..10.days.ago) 
     end 
    end 

エンド エンド

+0

おそらく、あなたはTimecopを使って過去の時間をフリーズすることができますか? – apneadiving

答えて

-2

factory_girlがあまりにも今factory_botであることに注意してください(未確認のために働いていません)。私はこれがあなたの質問に答えないことを知っていますが、あなたが前進するのに役立ちます。

+0

これは私の質問に対する答えではないので、元の投稿に対するコメントとして残っていたはずです –

関連する問題