I might have a flawed understanding of what shared_examples_for
should do, but hear me out.
Basically, I have a common navigation bar that appears in
Here's a nice intention-revealing way to bind these things together:
shared_examples_for 'a page with' do |elements|
# the following two would be navs for a page with
it { should have_selector 'h1', text: 'About' }
it { should have_selector 'a', text: 'Songs' }
# these would be dynamic depending on the page
it { should have_selector('h1', text: elements[:header]) }
it { should have_selector('title', text: full_title(elements[:title])) }
end
describe "About" do
it_behaves_like 'a page with', title: 'About', header: 'About Header' do
before { visit about_path }
end
end
describe "Songs" do
it_behaves_like 'a page with', title: 'Songs', header: 'Songs Header' do
before { visit songs_path }
end
end