前提・実現したいこと
deviseを使用して管理ユーザーのログイン機能を実装済みです。
userモデルにadminの属性を付与するのではなく、
adminモデルは別で作成しました。
発生している問題・エラーメッセージ
1) Adminers log in as a adminer Failure/Error: click_link '削除' Capybara::ElementNotFound: Unable to find link "削除"
ログインすると各投稿のタイトルと詳細ページへのリンク、削除リンクが表示されます。
※タイトルが同じですが別々の記事です。
該当のソースコード
RSpec
1require 'rails_helper' 2require 'capybara/rspec' 3 4RSpec.describe "Adminers", type: :feature do 5 scenario "log in as a adminer" do 6 adminer = FactoryBot.create(:adminer) 7 visit root_path 8 click_link "管理者" 9 fill_in "Email", with: adminer.email 10 fill_in "Password", with: adminer.password 11 click_button "Log in" 12 13 expect(page).to have_content "ログインしました。" 14 15 click_link '削除' 16 page.driver.browser.switch_to.alert.accept 17 expect(page).to have_content "Article was successfully destroyed." 18 end 19end
**一覧画面(管理者専用)のコード** <h1>Adminers Articles</h1> <tbody> <% @adminers_articles.each do |adminers_article| %> <tr> <!--<td><%= image_tag adminers_article.image %></td>--> <td><%= link_to adminers_article.title %></td> <td><%= link_to '詳細', [:adminers, adminers_article] %></td> <td><%= link_to '削除', [:adminers, adminers_article], method: :delete, data: { confirm: 'Are you sure?' } %></td> <!--作者の名前を表示させる--> </tr> <% end %> </tbody>
試したこと
そもそもログインできていないのかもと考えてclick_link '削除'以下をコメント
アウトしてみて再度テストを実行してみました。
結果はパスしたのでやはりcapybaraが'削除'リンクを見つけられていないようなのですが、
原因が分からず困っています。
補足情報(FW/ツールのバージョンなど)
管理ユーザー機能は下記のページを参考に実装しました。
https://ccbaxy.xyz/blog/2020/03/20/ruby33/
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/10 14:35