У меня есть тест rspec, в котором мне нужно специально найти блок div на индексной странице статей, соответствующий идентификатору статьи, и найти глификон, представляющий ссылку для уничтожения/редактирования и статьи. У меня есть список статей на индексной странице, поэтому мне нужно указать селектор css. Однако я не могу найти решение для этого. Я пробовал следующие методы:
1) Добавьте тег id к каждой статье в части статьи и вызовите конкретный div, используя «внутри»
часть статьи:
<div class = "row" id="<%= article.id %>" >
....more code....
</div>
spec/features/article_spec.rb
describe 'navigate' do
let!(:user) { FactoryGirl.create(:user) }
let!(:article) { FactoryGirl.create(:article) }
before do
login_as(user, :scope => :user)
end
describe 'edit' do
before do
@article_to_edit = Article.create(title: 'Article to edit', summary: 'Summary of article to edit', description: 'Test to edit this article', user_id: user.id)
end
it 'edit and delete icon is visible to article owner from index page' do
visit articles_path
within '#{@article_to_edit.id}' do
expect(page).to have_css('.glyphicon-pencil')
expect(page).to have_css('.glyphicon-trash')
end
end
end
2) Замените блок "внутри" приведенным ниже кодом, чтобы найти конкретную ссылку href статьи
expect(page).to have_link('', href: "/articles/#{@article_to_edit.friendly_id}/edit")
expect(page).to have_link('', href: "/articles/#{@article_to_edit.friendly_id}")