Initial commit
This commit is contained in:
123
spec/features/admin_managing_users_spec.rb
Normal file
123
spec/features/admin_managing_users_spec.rb
Normal file
@@ -0,0 +1,123 @@
|
||||
require "rails_helper"
|
||||
|
||||
feature "Admin managing users" do
|
||||
let(:current_user) { create(:user, admin: true, email: "user@test.com") }
|
||||
let(:project) { create(:project, account: current_user.primary_account) }
|
||||
|
||||
before do
|
||||
sign_in current_user
|
||||
end
|
||||
|
||||
scenario "creates a new user" do
|
||||
visit admin_users_path
|
||||
|
||||
click_link "New User"
|
||||
fill_in "Email", with: "bob@example.com"
|
||||
fill_in "Password", with: "password"
|
||||
select "My Team", from: "Account"
|
||||
check "Admin User"
|
||||
select "Account Manager", from: "Role"
|
||||
click_on "Create User"
|
||||
|
||||
expect(page).to have_content "The user was created"
|
||||
end
|
||||
|
||||
scenario "sees list of users" do
|
||||
visit admin_users_path
|
||||
|
||||
expect(page).to have_content "user@test.com"
|
||||
expect(page).to have_content "account_manager"
|
||||
expect(page).to have_content current_user.primary_account.name
|
||||
end
|
||||
|
||||
context "searchs for users" do
|
||||
before do
|
||||
create(:user, :with_name)
|
||||
create(:user, :with_different_name)
|
||||
visit admin_users_path
|
||||
end
|
||||
|
||||
scenario "shows all users when query is empty", js: true do
|
||||
expect(page).to have_selector "form#search"
|
||||
expect(page).to have_content "John"
|
||||
expect(page).to have_content "Specimen"
|
||||
end
|
||||
|
||||
scenario "shows only users matching search query", js: true do
|
||||
within "form#search" do
|
||||
fill_in "Search users", with: "John"
|
||||
click_on "button"
|
||||
end
|
||||
expect(page).to have_content "John"
|
||||
expect(page).not_to have_content "Specimen"
|
||||
end
|
||||
|
||||
scenario "shows no users matching search query", js: true do
|
||||
within "form#search" do
|
||||
fill_in "Search users", with: "nonexisting"
|
||||
click_on "button"
|
||||
end
|
||||
expect(page).not_to have_content "John"
|
||||
expect(page).not_to have_content "Specimen"
|
||||
end
|
||||
end
|
||||
|
||||
scenario "manages users" do
|
||||
another_user = create(:user, admin: false, email: "user2@test.com", accounts: current_user.accounts)
|
||||
note_author_user = create(:user, admin: false, email: "writer@test.com", accounts: current_user.accounts)
|
||||
create(:note, user: note_author_user, email: note_author_user.email)
|
||||
|
||||
visit admin_users_path
|
||||
|
||||
by "clicking Edit button can update existing users" do
|
||||
within "#user_#{another_user.id}" do
|
||||
click_on "Manage"
|
||||
click_link "Edit"
|
||||
end
|
||||
|
||||
expect(page).to have_content("Edit User")
|
||||
|
||||
fill_in "Email", with: "user-updated@example.com"
|
||||
check "Admin User"
|
||||
click_button "Update User"
|
||||
|
||||
expect(page).not_to have_content("user2@test.com")
|
||||
|
||||
click_link "Users"
|
||||
|
||||
expect(page).to have_content("user-updated@example.com associate")
|
||||
end
|
||||
|
||||
by "clicking Delete button can remove existing users" do
|
||||
sign_in current_user
|
||||
visit admin_users_path
|
||||
|
||||
within "#user_#{another_user.id}" do
|
||||
click_on "Manage"
|
||||
click_link "Delete"
|
||||
end
|
||||
|
||||
expect(page).not_to have_content "user2@test.com"
|
||||
expect(page).to have_content user_deleted_message
|
||||
end
|
||||
|
||||
by "clicking Delete button can remote users who posted ntoes" do
|
||||
sign_in current_user
|
||||
visit admin_users_path
|
||||
|
||||
within "#user_#{note_author_user.id}" do
|
||||
click_on "Manage"
|
||||
click_link "Delete"
|
||||
end
|
||||
|
||||
expect(page).not_to have_content "writer@test.com"
|
||||
expect(page).to have_content user_deleted_message
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def user_deleted_message
|
||||
t "admin.users.destroy.alert"
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user