Now we get rid of the "hierarchy" methods and use standard Rails methods except in the routes definitions themselves.
46 lines
1.2 KiB
Ruby
46 lines
1.2 KiB
Ruby
shared_examples "progressable" do |factory_name|
|
|
describe "Progress bars", :js 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
|