Test slugs from the user's point of view
System tests are about user experience, so instead of checking the slug has been updated in the database, we check whether the page can be accessed using the slug. Note the budget group test is a bit different because the name of the group isn't present in the budget group page.
This commit is contained in:
@@ -123,8 +123,7 @@ describe "Admin budget groups", :admin do
|
|||||||
end
|
end
|
||||||
|
|
||||||
scenario "Changing name for current locale will update the slug if budget is in draft phase" do
|
scenario "Changing name for current locale will update the slug if budget is in draft phase" do
|
||||||
group = create(:budget_group, budget: budget)
|
group = create(:budget_group, budget: budget, name: "Old English Name")
|
||||||
old_slug = group.slug
|
|
||||||
|
|
||||||
visit edit_admin_budget_group_path(budget, group)
|
visit edit_admin_budget_group_path(budget, group)
|
||||||
|
|
||||||
@@ -133,7 +132,10 @@ describe "Admin budget groups", :admin do
|
|||||||
click_button "Save group"
|
click_button "Save group"
|
||||||
|
|
||||||
expect(page).to have_content "Group updated successfully"
|
expect(page).to have_content "Group updated successfully"
|
||||||
expect(group.reload.slug).to eq old_slug
|
|
||||||
|
visit budget_group_path(budget, id: "old-english-name")
|
||||||
|
|
||||||
|
expect(page).to have_content "Select an option"
|
||||||
|
|
||||||
visit edit_admin_budget_group_path(budget, group)
|
visit edit_admin_budget_group_path(budget, group)
|
||||||
|
|
||||||
@@ -142,8 +144,10 @@ describe "Admin budget groups", :admin do
|
|||||||
click_button "Save group"
|
click_button "Save group"
|
||||||
|
|
||||||
expect(page).to have_content "Group updated successfully"
|
expect(page).to have_content "Group updated successfully"
|
||||||
expect(group.reload.slug).not_to eq old_slug
|
|
||||||
expect(group.slug).to eq "new-english-name"
|
visit budget_group_path(budget, id: "new-english-name")
|
||||||
|
|
||||||
|
expect(page).to have_content "Select an option"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -160,8 +160,7 @@ describe "Admin budget headings", :admin do
|
|||||||
end
|
end
|
||||||
|
|
||||||
scenario "Changing name for current locale will update the slug if budget is in draft phase" do
|
scenario "Changing name for current locale will update the slug if budget is in draft phase" do
|
||||||
heading = create(:budget_heading, group: group)
|
heading = create(:budget_heading, group: group, name: "Old English Name")
|
||||||
old_slug = heading.slug
|
|
||||||
|
|
||||||
visit edit_admin_budget_group_heading_path(budget, group, heading)
|
visit edit_admin_budget_group_heading_path(budget, group, heading)
|
||||||
|
|
||||||
@@ -170,7 +169,10 @@ describe "Admin budget headings", :admin do
|
|||||||
click_button "Save heading"
|
click_button "Save heading"
|
||||||
|
|
||||||
expect(page).to have_content "Heading updated successfully"
|
expect(page).to have_content "Heading updated successfully"
|
||||||
expect(heading.reload.slug).to eq old_slug
|
|
||||||
|
visit budget_investments_path(budget, heading_id: "old-english-name")
|
||||||
|
|
||||||
|
expect(page).to have_content "Old English Name"
|
||||||
|
|
||||||
visit edit_admin_budget_group_heading_path(budget, group, heading)
|
visit edit_admin_budget_group_heading_path(budget, group, heading)
|
||||||
|
|
||||||
@@ -179,8 +181,10 @@ describe "Admin budget headings", :admin do
|
|||||||
click_button "Save heading"
|
click_button "Save heading"
|
||||||
|
|
||||||
expect(page).to have_content "Heading updated successfully"
|
expect(page).to have_content "Heading updated successfully"
|
||||||
expect(heading.reload.slug).not_to eq old_slug
|
|
||||||
expect(heading.slug).to eq "new-english-name"
|
visit budget_investments_path(budget, heading_id: "new-english-name")
|
||||||
|
|
||||||
|
expect(page).to have_content "New English Name"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -286,8 +286,7 @@ describe "Admin budgets", :admin do
|
|||||||
end
|
end
|
||||||
|
|
||||||
scenario "Changing name for current locale will update the slug if budget is in draft phase" do
|
scenario "Changing name for current locale will update the slug if budget is in draft phase" do
|
||||||
budget.update!(published: false)
|
budget.update!(published: false, name: "Old English Name")
|
||||||
old_slug = budget.slug
|
|
||||||
|
|
||||||
visit edit_admin_budget_path(budget)
|
visit edit_admin_budget_path(budget)
|
||||||
|
|
||||||
@@ -296,7 +295,10 @@ describe "Admin budgets", :admin do
|
|||||||
click_button "Update Budget"
|
click_button "Update Budget"
|
||||||
|
|
||||||
expect(page).to have_content "Participatory budget updated successfully"
|
expect(page).to have_content "Participatory budget updated successfully"
|
||||||
expect(budget.reload.slug).to eq old_slug
|
|
||||||
|
visit budget_path(id: "old-english-name")
|
||||||
|
|
||||||
|
expect(page).to have_content "Old English Name"
|
||||||
|
|
||||||
visit edit_admin_budget_path(budget)
|
visit edit_admin_budget_path(budget)
|
||||||
|
|
||||||
@@ -305,8 +307,10 @@ describe "Admin budgets", :admin do
|
|||||||
click_button "Update Budget"
|
click_button "Update Budget"
|
||||||
|
|
||||||
expect(page).to have_content "Participatory budget updated successfully"
|
expect(page).to have_content "Participatory budget updated successfully"
|
||||||
expect(budget.reload.slug).not_to eq old_slug
|
|
||||||
expect(budget.slug).to eq "new-english-name"
|
visit budget_path(id: "new-english-name")
|
||||||
|
|
||||||
|
expect(page).to have_content "New English Name"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,10 @@ describe "Admin polls", :admin do
|
|||||||
expect(page).to have_content "Upcoming poll"
|
expect(page).to have_content "Upcoming poll"
|
||||||
expect(page).to have_content I18n.l(start_date)
|
expect(page).to have_content I18n.l(start_date)
|
||||||
expect(page).to have_content I18n.l(end_date)
|
expect(page).to have_content I18n.l(end_date)
|
||||||
expect(Poll.last.slug).to eq "#{Poll.last.name.to_s.parameterize}"
|
|
||||||
|
visit poll_path(id: "upcoming-poll")
|
||||||
|
|
||||||
|
expect(page).to have_content "Upcoming poll"
|
||||||
end
|
end
|
||||||
|
|
||||||
scenario "Edit" do
|
scenario "Edit" do
|
||||||
|
|||||||
Reference in New Issue
Block a user