The current tracking section had a few issues: * When browsing as an admin, this section becomes useless since no investments are shown * Browsing investments in the admin section, you're suddenly redirected to the tracking section, making navigation confusing * One test related to the officing dashboard failed due to these changes and had been commented * Several views and controller methods were copied from other sections, leading to duplication and making the code harder to maintain * Tracking routes were defined for proposals and legislation processes, but in the tracking section only investments were shown * Probably many more things, since these issues were detected after only an hour reviewing and testing the code So we're removing this untested section before releasing version 1.1. We might add it back afterwards.
123 lines
3.6 KiB
Ruby
123 lines
3.6 KiB
Ruby
shared_examples "admin_progressable" do |factory_name, path_name|
|
|
let!(:progressable) { create(factory_name) }
|
|
|
|
describe "Manage progress bars" do
|
|
let(:progressable_path) { send(path_name, *resource_hierarchy_for(progressable)) }
|
|
|
|
let(:path) do
|
|
polymorphic_path([:admin, *resource_hierarchy_for(progressable.progress_bars.new)])
|
|
end
|
|
|
|
context "Index" do
|
|
scenario "Link to index path" do
|
|
create(:progress_bar, :secondary, progressable: progressable,
|
|
title: "Reading documents",
|
|
percentage: 20)
|
|
|
|
visit progressable_path
|
|
click_link "Manage progress bars"
|
|
|
|
expect(page).to have_content "Reading documents"
|
|
end
|
|
|
|
scenario "No progress bars" do
|
|
visit path
|
|
|
|
expect(page).to have_content("There are no progress bars")
|
|
end
|
|
end
|
|
|
|
context "New" do
|
|
scenario "Primary progress bar", :js do
|
|
visit path
|
|
click_link "Create new progress bar"
|
|
|
|
select "Primary", from: "Type"
|
|
|
|
expect(page).not_to have_field "Title"
|
|
expect(page).not_to have_content "Add language"
|
|
|
|
fill_in "Current progress", with: 43
|
|
click_button "Create Progress bar"
|
|
|
|
expect(page).to have_content "Progress bar created successfully"
|
|
expect(page).to have_content "43%"
|
|
expect(page).to have_content "Primary"
|
|
expect(page).to have_content "Primary progress bar"
|
|
end
|
|
|
|
scenario "Secondary progress bar", :js do
|
|
visit path
|
|
click_link "Create new progress bar"
|
|
|
|
select "Secondary", from: "Type"
|
|
|
|
expect(page).to have_content "Add language"
|
|
|
|
fill_in "Current progress", with: 36
|
|
fill_in "Title", with: "Plant trees"
|
|
click_button "Create Progress bar"
|
|
|
|
expect(page).to have_content "Progress bar created successfully"
|
|
expect(page).to have_content "36%"
|
|
expect(page).to have_content "Secondary"
|
|
expect(page).to have_content "Plant trees"
|
|
end
|
|
end
|
|
|
|
context "Edit" do
|
|
scenario "Primary progress bar", :js do
|
|
bar = create(:progress_bar, progressable: progressable)
|
|
|
|
visit path
|
|
within("#progress_bar_#{bar.id}") { click_link "Edit" }
|
|
|
|
expect(page).to have_field "Current progress"
|
|
expect(page).not_to have_field "Title"
|
|
expect(page).not_to have_content "Add language"
|
|
|
|
fill_in "Current progress", with: 44
|
|
click_button "Update Progress bar"
|
|
|
|
expect(page).to have_content "Progress bar updated successfully"
|
|
|
|
within("#progress_bar_#{bar.id}") do
|
|
expect(page).to have_content "44%"
|
|
end
|
|
end
|
|
|
|
scenario "Secondary progress bar", :js do
|
|
bar = create(:progress_bar, :secondary, progressable: progressable)
|
|
|
|
visit path
|
|
within("#progress_bar_#{bar.id}") { click_link "Edit" }
|
|
|
|
expect(page).to have_content "Add language"
|
|
|
|
fill_in "Current progress", with: 76
|
|
fill_in "Title", with: "Updated title"
|
|
click_button "Update Progress bar"
|
|
|
|
expect(page).to have_content "Progress bar updated successfully"
|
|
|
|
within("#progress_bar_#{bar.id}") do
|
|
expect(page).to have_content "76%"
|
|
expect(page).to have_content "Updated title"
|
|
end
|
|
end
|
|
end
|
|
|
|
context "Delete" do
|
|
scenario "Remove progress bar" do
|
|
bar = create(:progress_bar, progressable: progressable, percentage: 34)
|
|
|
|
visit path
|
|
within("#progress_bar_#{bar.id}") { click_link "Delete" }
|
|
|
|
expect(page).to have_content "Progress bar deleted successfully"
|
|
expect(page).not_to have_content "34%"
|
|
end
|
|
end
|
|
end
|
|
end
|