mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-12-27 02:04:33 +08:00
49 lines
1.5 KiB
Ruby
49 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Given(/^I'm on "([^"]*)" team settings page$/) do |team_name|
|
|
team = Team.find_by(name: team_name)
|
|
visit team_path(team)
|
|
end
|
|
|
|
Then(/^I click on "(.+)" action button within Team members table$/) do |email|
|
|
mail_td = find('td', text: /\A#{email}\z/)
|
|
parent = mail_td.first(:xpath, './/..')
|
|
parent.find('[type="button"]').click
|
|
end
|
|
|
|
Then(/^I click "(.+)" link within "(.+)" actions dropdown within Team members table$/) do |role, email|
|
|
mail_td = find('td', text: /\A#{email}\z/)
|
|
parent = mail_td.first(:xpath, './/..')
|
|
within(parent) do
|
|
click_link role
|
|
end
|
|
end
|
|
|
|
Then(/^I should see "(.+)" in Role column of "(.+)" within Team members table$/) do |role, email|
|
|
wait_for_ajax
|
|
sleep 0.3
|
|
mail_td = find('td', text: /\A#{email}\z/)
|
|
parent = mail_td.first(:xpath, './/..')
|
|
expect(parent).to have_css('td', text: /\A#{role}\z/)
|
|
end
|
|
|
|
Then(/^I should not see "([^"]*)" in Team members table$/) do |email|
|
|
expect(page).to have_no_css('td', text: /\A#{email}\z/)
|
|
end
|
|
|
|
Then(/^I click on team title$/) do
|
|
find('#team-name').click
|
|
end
|
|
|
|
Given('the following users are registered with teams:') do |table|
|
|
table.hashes.each do |row|
|
|
team = Team.find_by(name: row[:team])
|
|
team ||= FactoryBot.create(:team, name: row[:team])
|
|
user = FactoryBot.create(:user, row.slice('name', 'email'))
|
|
FactoryBot.create(:user_team, user: user, team: team, role: row[:role])
|
|
end
|
|
end
|
|
|
|
Given('team settings page') do
|
|
visit teams_path
|
|
end
|