207 lines
6.8 KiB
Ruby
207 lines
6.8 KiB
Ruby
|
|
### GIVEN
|
||
|
|
|
||
|
|
Given /^I have related works setup$/ do
|
||
|
|
step "basic tags"
|
||
|
|
step "all emails have been delivered"
|
||
|
|
|
||
|
|
inspiration = FactoryBot.create(:user, login: "inspiration", confirmed_at: Time.now.utc)
|
||
|
|
FactoryBot.create(:user, login: "translator", confirmed_at: Time.now.utc)
|
||
|
|
FactoryBot.create(:user, login: "remixer", confirmed_at: Time.now.utc)
|
||
|
|
|
||
|
|
FactoryBot.create(:work, title: "Worldbuilding", authors: inspiration.pseuds)
|
||
|
|
FactoryBot.create(:work, title: "Worldbuilding Two", authors: inspiration.pseuds)
|
||
|
|
end
|
||
|
|
|
||
|
|
Given /^an inspiring parent work has been posted$/ do
|
||
|
|
step "I post an inspiring parent work as testuser"
|
||
|
|
end
|
||
|
|
|
||
|
|
# given for remixes / related works
|
||
|
|
|
||
|
|
Given /^a related work has been posted$/ do
|
||
|
|
step %{I post a related work as remixer}
|
||
|
|
end
|
||
|
|
|
||
|
|
Given /^a related work has been posted and approved$/ do
|
||
|
|
step %{I post a related work as remixer}
|
||
|
|
step %{I approve a related work}
|
||
|
|
end
|
||
|
|
|
||
|
|
# given for translations
|
||
|
|
|
||
|
|
Given /^a translation has been posted$/ do
|
||
|
|
step %{I post a translation as translator}
|
||
|
|
end
|
||
|
|
|
||
|
|
Given /^a translation has been posted and approved$/ do
|
||
|
|
step %{I post a translation as translator}
|
||
|
|
step %{I approve a related work}
|
||
|
|
end
|
||
|
|
|
||
|
|
### WHEN
|
||
|
|
|
||
|
|
When "I post an inspiring parent work as testuser" do
|
||
|
|
step %{I am logged in as "testuser"}
|
||
|
|
step %{I post the work "Parent Work"}
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I approve a related work$/ do
|
||
|
|
step %{I am logged in as "inspiration"}
|
||
|
|
step %{I follow "My Dashboard"}
|
||
|
|
step %{I follow "Related Works ("}
|
||
|
|
step %{I follow "Approve"}
|
||
|
|
step %{I press "Yes, link me!"}
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I view my related works$/ do
|
||
|
|
step %{I follow "My Dashboard"}
|
||
|
|
step %{I follow "Related Works ("}
|
||
|
|
end
|
||
|
|
|
||
|
|
# when for remixes / related works
|
||
|
|
|
||
|
|
When /^I post a related work as remixer$/ do
|
||
|
|
step %{I am logged in as "remixer"}
|
||
|
|
step %{I go to the new work page}
|
||
|
|
step %{I select "Not Rated" from "Rating"}
|
||
|
|
step %{I check "No Archive Warnings Apply"}
|
||
|
|
step %{I select "English" from "Choose a language"}
|
||
|
|
step %{I fill in "Fandoms" with "Stargate"}
|
||
|
|
step %{I fill in "Work Title" with "Followup"}
|
||
|
|
step %{I fill in "content" with "That could be an amusing crossover."}
|
||
|
|
step %{I list the work "Worldbuilding" as inspiration}
|
||
|
|
step %{I press "Preview"}
|
||
|
|
step %{I press "Post"}
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I post a related work as remixer for an external work$/ do
|
||
|
|
step %{I am logged in as "remixer"}
|
||
|
|
step %{I go to the new work page}
|
||
|
|
step %{I select "Not Rated" from "Rating"}
|
||
|
|
step %{I check "No Archive Warnings Apply"}
|
||
|
|
step %{I select "English" from "Choose a language"}
|
||
|
|
step %{I fill in "Fandoms" with "Stargate"}
|
||
|
|
step %{I fill in "Work Title" with "Followup"}
|
||
|
|
step %{I fill in "content" with "That could be an amusing crossover."}
|
||
|
|
step %{I list an external work as inspiration}
|
||
|
|
step %{I press "Preview"}
|
||
|
|
step %{I press "Post"}
|
||
|
|
end
|
||
|
|
|
||
|
|
# when for translations
|
||
|
|
|
||
|
|
When /^I post a translation as translator$/ do
|
||
|
|
step %{I am logged in as "translator"}
|
||
|
|
step %{I draft a translation}
|
||
|
|
step %{I press "Post"}
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I post a translation of my own work$/ do
|
||
|
|
step %{I am logged in as "inspiration"}
|
||
|
|
step %{I draft a translation}
|
||
|
|
step %{I press "Post"}
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I draft a translation$/ do
|
||
|
|
FactoryBot.create(:language, name: "Deutsch", short: "de")
|
||
|
|
|
||
|
|
step %{I go to the new work page}
|
||
|
|
step %{I check "No Archive Warnings Apply"}
|
||
|
|
step %{I fill in "Fandoms" with "Stargate"}
|
||
|
|
step %{I fill in "Work Title" with "Worldbuilding Translated"}
|
||
|
|
step %{I fill in "content" with "That could be an amusing crossover."}
|
||
|
|
step %{I list the work "Worldbuilding" as inspiration}
|
||
|
|
step %{I check "This is a translation"}
|
||
|
|
step %{I select "Deutsch" from "Choose a language"}
|
||
|
|
step %{I press "Preview"}
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I list a series as inspiration$/ do
|
||
|
|
with_scope("#parent-options") do
|
||
|
|
fill_in("URL", with: "#{ArchiveConfig.APP_HOST}/series/123")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
When /^I list a nonexistent work as inspiration$/ do
|
||
|
|
work = Work.find_by_id(123)
|
||
|
|
work.destroy unless work.nil?
|
||
|
|
with_scope("#parent-options") do
|
||
|
|
fill_in("URL", with: "#{ArchiveConfig.APP_HOST}/works/123")
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
### THEN
|
||
|
|
|
||
|
|
Then /^the original author should be emailed$/ do
|
||
|
|
step "1 email should be delivered"
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^approving the related work should succeed$/ do
|
||
|
|
step %{I should see "Link was successfully approved"}
|
||
|
|
end
|
||
|
|
|
||
|
|
# then for remixes / related works
|
||
|
|
|
||
|
|
Then /^a parent related work should be seen$/ do
|
||
|
|
step %{I should see "Work was successfully posted"}
|
||
|
|
step %{I should find a list for associations}
|
||
|
|
step %{I should see "Inspired by Worldbuilding by inspiration" within ".preface .notes"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^I should see the inspiring parent work in the beginning notes$/ do
|
||
|
|
step %{I should see "Inspired by Parent Work by testuser" within ".preface .notes"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^I should see a beginning note about related works$/ do
|
||
|
|
step %{I should see "See the end of the work for other works inspired by this one" within ".preface .notes"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^I should see the related work in the end notes$/ do
|
||
|
|
step %{I should see "Works inspired by this one:" within ".afterword .children"}
|
||
|
|
step %{I should see "Followup by remixer" within ".afterword .children"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then "I should see the related work listed on the original work" do
|
||
|
|
step %{I should see "See the end of the work for other works inspired by this one"}
|
||
|
|
step %{I should see "Works inspired by this one:"}
|
||
|
|
step %{I should see "Followup by remixer"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^I should not see the related work listed on the original work$/ do
|
||
|
|
step %{I should not see "See the end of the work for other works inspired by this one"}
|
||
|
|
step %{I should not see "Works inspired by this one:"}
|
||
|
|
step %{I should not see "Followup by remixer"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then "I should not see the inspiring parent work in the beginning notes" do
|
||
|
|
step %{I should not see "Inspired by Parent Work by testuser" within ".preface .notes"}
|
||
|
|
end
|
||
|
|
|
||
|
|
# then for translations
|
||
|
|
|
||
|
|
Then /^a parent translated work should be seen$/ do
|
||
|
|
step %{I should see "Work was successfully posted"}
|
||
|
|
step %{I should find a list for associations}
|
||
|
|
step %{I should see "A translation of Worldbuilding by inspiration" within ".preface .notes"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then "I should see the translation in the beginning notes" do
|
||
|
|
step %{I should see "Translation into Deutsch available:" within ".preface .notes"}
|
||
|
|
step %{I should see "Worldbuilding Translated by translator" within ".preface .notes"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then "I should see the translation listed on the original work" do
|
||
|
|
step %{I should see "Translation into Deutsch available:"}
|
||
|
|
step %{I should see "Worldbuilding Translated by translator"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^I should not see the translation listed on the original work$/ do
|
||
|
|
step %{I should not see "Translation into Deutsch available:"}
|
||
|
|
step %{I should not see "Worldbuilding Translated by translator"}
|
||
|
|
end
|
||
|
|
|
||
|
|
Then /^I should not see the translation in the end notes$/ do
|
||
|
|
step %{I should not see "Translation into Deutsch available:" within ".afterword"}
|
||
|
|
step %{I should not see "Worldbuilding Translated by translator" within ".afterword"}
|
||
|
|
end
|