Files
nairobi/spec/system/admin/managers_spec.rb
Javi Martín 9427f01442 Use system specs instead of feature specs
We get rid of database cleaner, and JavaScript tests are faster because
between tests we now rollback transactions instead of truncating the
database.
2020-04-24 15:43:54 +02:00

85 lines
2.4 KiB
Ruby

require "rails_helper"
describe "Admin managers" do
let!(:user) { create(:user) }
let!(:manager) { create(:manager) }
before do
login_as(create(:administrator).user)
visit admin_managers_path
end
scenario "Index" do
expect(page).to have_content manager.name
expect(page).to have_content manager.email
expect(page).not_to have_content user.name
end
scenario "Create Manager", :js do
fill_in "name_or_email", with: user.email
click_button "Search"
expect(page).to have_content user.name
click_link "Add"
within("#managers") do
expect(page).to have_content user.name
end
end
scenario "Delete Manager" do
click_link "Delete"
within("#managers") do
expect(page).not_to have_content manager.name
end
end
context "Search" do
let(:user) { create(:user, username: "Taylor Swift", email: "taylor@swift.com") }
let(:user2) { create(:user, username: "Stephanie Corneliussen", email: "steph@mrrobot.com") }
let!(:manager1) { create(:manager, user: user) }
let!(:manager2) { create(:manager, user: user2) }
before do
visit admin_managers_path
end
scenario "returns no results if search term is empty" do
expect(page).to have_content(manager1.name)
expect(page).to have_content(manager2.name)
fill_in "name_or_email", with: " "
click_button "Search"
expect(page).to have_content("Managers: User search")
expect(page).to have_content("No results found")
expect(page).not_to have_content(manager1.name)
expect(page).not_to have_content(manager2.name)
end
scenario "search by name" do
expect(page).to have_content(manager1.name)
expect(page).to have_content(manager2.name)
fill_in "name_or_email", with: "Taylor"
click_button "Search"
expect(page).to have_content("Managers: User search")
expect(page).to have_content(manager1.name)
expect(page).not_to have_content(manager2.name)
end
scenario "search by email" do
expect(page).to have_content(manager1.email)
expect(page).to have_content(manager2.email)
fill_in "name_or_email", with: manager2.email
click_button "Search"
expect(page).to have_content("Managers: User search")
expect(page).to have_content(manager2.email)
expect(page).not_to have_content(manager1.email)
end
end
end