私の DB の最初のユーザーはスーパー管理者であり、そのアカウントに関連付けられた電子メール アドレスを誰も編集できないようにしたいので、次のモデル仕様を使用していますが、これは失敗しています。
# from my User model spec
describe "super admin" do
let(:super_admin){ FactoryGirl.create(:admin, email: "test@email.com") }
it "can't be edited by anyone" do
expect do
super_admin.update_attributes(email: 'email@test.com')
end.not_to change(super_admin, :email)
end
end
私のコントローラーには、最初のデータベース エントリ (スーパー管理者) を編集しようとするユーザーをリダイレクトする前のフィルターがあります。
上記のテストが失敗しているのではないかと心配しています。この特定のユーザーの編集がコントローラーによってロックダウンされている場合、モデルでこれをテストするのは間違っていますか、それとも、リクエスト仕様またはモデル仕様に関係なく、合格することを期待する必要がありますか?
PS - ユーザー モデルには電子メール (文字列) と管理者 (ブール値) フィールドがあります。SuperAdmin は、たまたま管理者であるデータベースの最初のユーザーであり、特別なことは何もありません