# encoding: utf-8
RSpec.describe "breadcrumbs trail" do
include ActionView::TestCase::Behavior
it "shows root breadcrumb" do
visit root_path
within '#breadcrumbs .selected' do
expect(page.html).to include('Home')
end
end
it "inherits controller breadcrumb and adds index action breadcrumb" do
visit posts_path
within '#breadcrumbs' do
expect(page.html).to include('Home')
within '.selected' do
expect(page.html).to include('All Posts')
end
end
end
it 'filters out controller breadcrumb and adds new action breadcrumb' do
visit new_post_path
within '#breadcrumbs' do
expect(page).to_not have_content('Home')
expect(page).to have_content('New Post')
end
end
it "adds breadcrumb in view with path variable" do
visit post_path(1)
within '#breadcrumbs .selected' do
expect(page.html).to include('Show Post in view')
end
end
it 'is current when forced' do
visit new_post_path
expect(page.current_path).to eq(new_post_path)
within '#breadcrumbs' do
expect(page).to have_selector('li.selected', count: 2)
expect(page.html).to include('All')
expect(page.html).to include('New Post')
end
end
it "allows for procs in name and url" do
visit post_comments_path(1)
within '#breadcrumbs .selected' do
expect(page.html).to include('Post comments')
end
end
it "allows for procs in name and url without supplying the controller" do
visit post_comments_path(1)
within "#breadcrumbs .selected" do
expect(page.html).to include(
''\
"Post comments No Controller"
)
end
end
end