私は既存の Rails アプリ (30 以上のモデル、30 以上のコントローラー) に取り組んでおり、Devise の確認可能なものを実装しようとしています (現在、ユーザーはサインアップ時にパスワードの作成を求められません)。
私の問題は、2 つの (一見) 小さなアクションが原因で 300 スペックが失敗し始めることです... より経験豊富な手からのアドバイスがあれば、うさぎの穴に行き過ぎないように助けてくれることを願っています.
2 つのアクション:
(1) 内で、デバイス構成user.rb
に追加します。:confirmable
devise :database_authenticatable, :recoverable, :rememberable, :confirmable, ...
(2)構成のdevise.rb
コメントアウトを外しますallow_unconfirmed_access
:
config.allow_unconfirmed_access_for = 2.days
これら 2 つのアクションにより、すべての仕様のほぼ 1/4 が失敗し始めます。すべての仕様に飛び込んで変更を加える前に、誰かが私に欠けているものを教えてくれるか、正しい方向に向けてくれませんか?
更新原因を、管理者権限の問題であると思われるものに絞り込みました。通常のユーザーを対象とする仕様は合格していますが、管理者ログインを必要とするテストはすべて失敗しています (たとえば、予想される応答が 200 ではなく 302 または 401 を返す仕様...)。
通常のユーザー向けの工場では、confirmed_at
eq に含めていTime.now
ます。これは私が管理者を構築する方法です:
factory :admin_user, :parent => :user do
email ADMIN_USER_EMAIL
end
ADMIN_USER_EMAIL は、実際の管理者の電子メール アドレスを参照する ENV 変数です。から継承し:parent => :user
ているため、管理者を確認するために他に何をすべきかわかりません??