The `type: :feature` is automatically detected by RSpec because these tests are inside the `spec/features` folder. Using `feature` re-adds a `type: :feature` to these files, which will result in a conflict when we upgrade to Rails 5.1's system tests. Because of this change, we also need to change `background` to `before` or else these tests will fail.
96 lines
2.5 KiB
Ruby
96 lines
2.5 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Admin milestone statuses" do
|
|
|
|
before 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
|