Sha256: 1e360ebbc77b3b292ee0c983aabe0fe30b030424394b25a7c0cd02b4d465a050

Contents?: true

Size: 1.55 KB

Versions: 3

Compression:

Stored size: 1.55 KB

Contents

# 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('<a href="/">Home</a>')
    end
  end

  it "inherits controller breadcrumb and adds index action breadcrumb" do
    visit posts_path

    within '#breadcrumbs' do
      expect(page.html).to include('<a href="/">Home</a>')
      within '.selected' do
        expect(page.html).to include('<a href="/posts">All Posts</a>')
      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('<a href="/posts/1">Show Post in view</a>')
    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('<a href="/posts">All</a>')
      expect(page.html).to include('<a href="/posts/new">New Post</a>')
    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('<a href="/posts/1/comments">Post comments</a>')
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
loaf-0.6.2 spec/integration/breadcrumb_trail_spec.rb
loaf-0.6.1 spec/integration/breadcrumb_trail_spec.rb
loaf-0.6.0 spec/integration/breadcrumb_trail_spec.rb