Files
nairobi/spec/features/admin/milestone_statuses_spec.rb
2019-02-15 11:40:39 +01:00

96 lines
2.5 KiB
Ruby

require "rails_helper"
feature "Admin milestone statuses" do
background do
admin = create(:administrator)
login_as(admin.user)
end
context "Index" do
scenario "Displaying only not hidden statuses" do
status1 = create(:milestone_status)
status2 = create(:milestone_status)
status1.destroy
visit admin_milestone_statuses_path
expect(page).not_to have_content status1.name
expect(page).not_to have_content status1.description
expect(page).to have_content status2.name
expect(page).to have_content status2.description
end
scenario "Displaying no statuses text" do
visit admin_milestone_statuses_path
expect(page).to have_content("There are no milestone statuses created")
end
end
context "New" do
scenario "Create status" do
visit admin_milestone_statuses_path
click_link "Create new milestone status"
fill_in "milestone_status_name", with: "New status name"
fill_in "milestone_status_description", with: "This status description"
click_button "Create Milestone Status"
expect(page).to have_content "New status name"
expect(page).to have_content "This status description"
end
scenario "Show validation errors in status form" do
visit admin_milestone_statuses_path
click_link "Create new milestone status"
fill_in "milestone_status_description", with: "This status description"
click_button "Create Milestone Status"
within "#new_milestone_status" do
expect(page).to have_content "can't be blank", count: 1
end
end
end
context "Edit" do
scenario "Change name and description" do
status = create(:milestone_status)
visit admin_milestone_statuses_path
within("#milestone_status_#{status.id}") do
click_link "Edit"
end
fill_in "milestone_status_name", with: "Other status name"
fill_in "milestone_status_description", with: "Other status description"
click_button "Update Milestone Status"
expect(page).to have_content "Other status name"
expect(page).to have_content "Other status description"
end
end
context "Delete" do
scenario "Hides status" do
status = create(:milestone_status)
visit admin_milestone_statuses_path
within("#milestone_status_#{status.id}") do
click_link "Delete"
end
expect(page).not_to have_content status.name
expect(page).not_to have_content status.description
end
end
end