Files
old-holivud2/spec/features/user_managing_project_memberships_spec.rb
2020-05-31 22:38:19 +02:00

49 lines
1.8 KiB
Ruby

require "rails_helper"
feature "User managing project memberships" do
let(:account) { create(:account) }
scenario "manager invites an existing team member to another project" do
manager = create(:user, :manager, accounts: [account], email: "manager@test.com")
project = create(:project, members: manager, account: account, name: "Project")
another_user = create(:user, accounts: [account], email: "another.user@test.com")
another_project = create(:project, members: [manager, another_user], account: account, name: "Another Project")
sign_in manager
visit project_project_memberships_path(project)
expect(page).to have_content "manager@test.com"
expect(page).not_to have_content "another.user@test.com"
fill_in invite_email_field, with: "another.user@test.com"
click_on "Send Invite"
expect(page).to have_content "User has been invited to the project."
expect(page).to have_content "another.user@test.com"
end
scenario "manager removes an existing team member from a project" do
manager = create(:user, :manager, accounts: [account], email: "manager@test.com")
another_user = create(:user, accounts: [account], email: "another.user@test.com")
project = create(:project, members: [manager, another_user], account: account, name: "Project")
sign_in manager
visit project_project_memberships_path(project)
expect(page).to have_content "manager@test.com"
expect(page).to have_content "another.user@test.com"
expect(page).to have_link("Remove", href: project_membership_path(another_user.project_memberships.first))
click_on "Remove"
expect(page).to have_content "User has been removed from the project."
expect(page).not_to have_content "another.user@test.com"
end
private
def invite_email_field
"project_membership[user_email]"
end
end