spec/shared/system/progressable.rb
shared_examples "progressable" do |factory_name|
describe "Progress bars" do
let!(:progressable) { create(factory_name) }
let(:path) { polymorphic_path(progressable) }
scenario "With main progress bar" do
create(:progress_bar, progressable: progressable)
visit path
find("#tab-milestones-label").click
within("#tab-milestones") do
expect(page).to have_content "Progress"
end
end
scenario "With main and secondary progress bar" do
create(:progress_bar, progressable: progressable)
create(:progress_bar, :secondary, progressable: progressable, title: "Build laboratory")
visit path
find("#tab-milestones-label").click
within("#tab-milestones") do
expect(page).to have_content "Progress"
expect(page).to have_content "Build laboratory"
end
end
scenario "No main progress bar" do
create(:progress_bar, :secondary, progressable: progressable, title: "Defeat Evil Lords")
visit path
find("#tab-milestones-label").click
within("#tab-milestones") do
expect(page).not_to have_content "Progress"
expect(page).not_to have_content "Defeat Evil Lords"
end
end
end
end