otwarchive-symphonyarchive/features/step_definitions/archivist_steps.rb
2026-03-11 22:22:11 +00:00

103 lines
3.9 KiB
Ruby

### GIVEN
Given /^I have an archivist "([^\"]*)"$/ do |name|
step(%{the user "#{name}" exists and has the role "archivist"})
end
Given /^I have pre-archivist setup for "([^\"]*)"$/ do |name|
step(%{I am logged in as "#{name}"})
step(%{the role "archivist"})
end
Given /^I have an Open Doors committee member "([^\"]*)"$/ do |name|
step(%{I have pre-archivist setup for "#{name}"})
step(%{I make "#{name}" an Open Doors committee member})
end
### WHEN
When /^I make "([^\"]*)" an archivist$/ do |name|
step(%{I go to the manage users page})
step(%{I fill in "Name" with "#{name}"})
step(%{I press "Find"})
step(%{I check the "archivist" role checkbox})
step(%{I press "Update"})
end
When /^I make "([^\"]*)" an Open Doors committee member$/ do |name|
@user = User.find_by(login: name)
@role = Role.find_or_create_by(name: "opendoors")
@user.roles = [@role]
end
When /^(?:|I )fill in "([^"]*)" with the path to (.+)$/ do |field, page_name|
fill_in(field, with: path_to(page_name))
end
When /^I start to import the work "([^\"]*)"(?: by "([^\"]*)" with email "([^\"]*)")?$/ do |url, external_author_name, external_author_email|
step(%{I go to the import page})
step(%{I check "Import for others ONLY with permission"})
step(%{I fill in "urls" with "#{url}"})
step %{I select "English" from "Choose a language"}
if external_author_name.present?
step(%{I fill in "external_author_name" with "#{external_author_name}"})
step(%{I fill in "external_author_email" with "#{external_author_email}"})
end
end
When /^I import the work "(.*?)"(?: by "(.*?)" with email "(.*?)")?(?: and by "(.*?)" with email "(.*?)")?$/ do
|url, creator_name, creator_email, cocreator_name, cocreator_email|
step(%{I go to the import page})
step(%{I check "Import for others ONLY with permission"})
step(%{I fill in "urls" with "#{url}"})
step %{I select "English" from "Choose a language"}
if creator_name.present?
step(%{I fill in "external_author_name" with "#{creator_name}"})
step(%{I fill in "external_author_email" with "#{creator_email}"})
end
if cocreator_name.present?
step(%{I fill in "external_coauthor_name" with "#{cocreator_name}"})
step(%{I fill in "external_coauthor_email" with "#{cocreator_email}"})
end
step(%{I check "Post without previewing"})
step(%{I press "Import"})
end
When /^I import the works "([^\"]*)"$/ do |urls|
urls = urls.split(/, ?/).join("\n")
step(%{I go to the import page})
step(%{I check "Import for others ONLY with permission"})
step(%{I fill in "urls" with "#{urls}"})
step %{I select "English" from "Choose a language"}
step(%{I check "Post without previewing"})
step(%{I press "Import"})
end
### THEN
Then /^I should not see multi-story import messages$/ do
step %{I should not see "Importing completed successfully for the following works! (But please check the results over carefully!)"}
step %{I should not see "Imported Works"}
step %{I should not see "We were able to successfully upload the following works."}
end
Then /^I should see multi-story import messages$/ do
step %{I should see "Importing completed successfully for the following works! (But please check the results over carefully!)"}
step %{I should see "Imported Works"}
step %{I should see "We were able to successfully upload the following works."}
end
Then /^I should see import confirmation$/ do
step %{I should see "We have notified the author(s) you imported works for. If any were missed, you can also add co-authors manually."}
end
Then /^the email should contain invitation warnings from "([^\"]*)" for work "([^\"]*)" in fandom "([^\"]*)"$/ do |name, work, fandom|
step %{the email should contain "has recently been imported"}
step %{the email should contain "Open Doors"}
step %{the email should contain "#{work}"}
step %{the email should contain "#{fandom}"}
end
Then /^the email should contain claim information$/ do
step %{the email should contain "automatically added to your AO3 account"}
end