346 lines
16 KiB
Gherkin
346 lines
16 KiB
Gherkin
@series
|
||
Feature: Create and Edit Series
|
||
In order to view series created by a user
|
||
As a reader
|
||
The index needs to load properly, even for authors with more than ArchiveConfig.ITEMS_PER_PAGE series
|
||
|
||
Scenario: Creator manually enters a series name to add a work to a new series when the work is first posted
|
||
Given I am logged in as "author"
|
||
And I set up the draft "Sweetie Belle"
|
||
When I fill in "Or create and use a new one:" with "Ponies"
|
||
When I press "Post"
|
||
Then I should see "Part 1 of Ponies" within "div#series"
|
||
And I should see "Part 1 of Ponies" within "dd.series"
|
||
When I view the series "Ponies"
|
||
Then I should see "Sweetie Belle"
|
||
|
||
Scenario: Creator selects an existing series name to add a work to an existing series when the work is first posted
|
||
Given I am logged in as "author"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies"
|
||
And I set up the draft "Starsong"
|
||
When I select "Ponies" from "Choose one of your existing series:"
|
||
And I press "Post"
|
||
Then I should see "Part 2 of Ponies" within "div#series"
|
||
And I should see "Part 2 of Ponies" within "dd.series"
|
||
When I view the series "Ponies"
|
||
Then I should see "Sweetie Belle"
|
||
And I should see "Starsong"
|
||
|
||
Scenario: Creator adds a work to an existing series by editing the work
|
||
Given I am logged in as "author"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies"
|
||
And I post the work "Rainbow Dash"
|
||
When I view the series "Ponies"
|
||
Then I should not see "Rainbow Dash"
|
||
When I edit the work "Rainbow Dash"
|
||
And I select "Ponies" from "Choose one of your existing series:"
|
||
And I press "Post"
|
||
Then I should see "Part 2 of Ponies" within "div#series"
|
||
And I should see "Part 2 of Ponies" within "dd.series"
|
||
When I view the series "Ponies"
|
||
Then I should see "Sweetie Belle"
|
||
And I should see "Rainbow Dash"
|
||
|
||
Scenario: Works in a series have series navigation
|
||
Given I am logged in as "author"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies"
|
||
And it is currently 1 second from now
|
||
And I post the work "Starsong" as part of a series "Ponies"
|
||
And it is currently 1 second from now
|
||
And I post the work "Rainbow Dash" as part of a series "Ponies"
|
||
When I view the series "Ponies"
|
||
And I follow "Rainbow Dash"
|
||
Then I should see "Part 3 of Ponies"
|
||
And I should not see "Next Work →"
|
||
When I follow "← Previous Work"
|
||
Then I should see "Starsong"
|
||
And I should see "Next Work →" within ".work.meta .next"
|
||
And I should see "Next Work →" within ".afterword .next"
|
||
When I follow "← Previous Work"
|
||
And I should see "Next Work →" within ".work.meta .next"
|
||
And I should see "Next Work →" within ".afterword .next"
|
||
Then I should see "Sweetie Belle"
|
||
When I follow "Next Work →"
|
||
Then I should see "Starsong"
|
||
|
||
Scenario: Creator can add series information
|
||
Given I am logged in as "author"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies"
|
||
When I view the series "Ponies"
|
||
And I follow "Edit Series"
|
||
And I fill in "Series Description" with "This is a series about ponies. Of course"
|
||
And I fill in "Series Notes" with "I wrote this under the influence of coffee! And pink chocolate."
|
||
And I press "Update"
|
||
Then I should see "Series was successfully updated."
|
||
And I should see "This is a series about ponies. Of course" within "blockquote.userstuff"
|
||
And I should see "I wrote this under the influence of coffee! And pink chocolate." within "dl.series"
|
||
And I should see "Complete: No"
|
||
When I follow "Edit Series"
|
||
And I check "This series is complete"
|
||
And I press "Update"
|
||
Then I should see "Complete: Yes"
|
||
|
||
Scenario: A work can be in two series
|
||
Given I am logged in as "author"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies"
|
||
And I post the work "Rainbow Dash" as part of a series "Ponies"
|
||
When I edit the work "Rainbow Dash"
|
||
Then the "This work is part of a series" checkbox should be checked
|
||
And "Ponies" should be an option within "Choose one of your existing series:"
|
||
When I fill in "Or create and use a new one:" with "Black Beauty"
|
||
And I press "Preview"
|
||
Then I should see "Part 2 of Ponies" within "dd.series"
|
||
And I should see "Part 1 of Black Beauty" within "dd.series"
|
||
When I press "Update"
|
||
And all indexing jobs have been run
|
||
Then I should see "Part 1 of Black Beauty" within "dd.series"
|
||
And I should see "Part 2 of Ponies" within "dd.series"
|
||
And I should see "Part 1 of Black Beauty" within "div#series"
|
||
And I should see "Part 2 of Ponies" within "div#series"
|
||
|
||
Scenario: Creator with multiple pseuds adds a work to a new series when the work is first posted
|
||
Given I am logged in as "author"
|
||
And "author" creates the pseud "Pointless Pseud"
|
||
And I set up the draft "Sweetie Belle" using the pseud "Pointless Pseud"
|
||
When I fill in "Or create and use a new one:" with "Ponies"
|
||
And I press "Post"
|
||
Then I should see "Pointless Pseud"
|
||
And I should see "Part 1 of Ponies" within "div#series"
|
||
And I should see "Part 1 of Ponies" within "dd.series"
|
||
When I view the series "Ponies"
|
||
Then I should see "Sweetie Belle"
|
||
|
||
Scenario: Creator with multiple pseuds adds a work to an existing series when the work is first posted
|
||
Given I am logged in as "author"
|
||
And "author" creates the pseud "Pointless Pseud"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies" using the pseud "Pointless Pseud"
|
||
When I set up the draft "Starsong" as part of a series "Ponies" using the pseud "Pointless Pseud"
|
||
And I press "Post"
|
||
Then I should see "Pointless Pseud"
|
||
And I should see "Part 2 of Ponies"
|
||
When I view the series "Ponies"
|
||
Then I should see "Sweetie Belle"
|
||
And I should see "Starsong"
|
||
|
||
Scenario: Creator with multiple pseuds adds a work to an existing series by editing the work
|
||
Given I am logged in as "author"
|
||
And "author" creates the pseud "Pointless Pseud"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies" using the pseud "Pointless Pseud"
|
||
And I post the work "Rainbow Dash" using the pseud "Pointless Pseud"
|
||
When I view the series "Ponies"
|
||
Then I should not see "Rainbow Dash"
|
||
When I edit the work "Rainbow Dash"
|
||
And I select "Ponies" from "Choose one of your existing series:"
|
||
And I press "Post"
|
||
Then I should see "Part 2 of Ponies" within "div#series"
|
||
And I should see "Part 2 of Ponies" within "dd.series"
|
||
When I view the series "Ponies"
|
||
Then I should see "Sweetie Belle"
|
||
And I should see "Rainbow Dash"
|
||
|
||
Scenario: A pseud's series page contains the pseud in the page title
|
||
Given I am logged in as "author"
|
||
And "author" creates the pseud "Pointless Pseud"
|
||
And I post the work "Sweetie Belle" as part of a series "Ponies" using the pseud "Pointless Pseud"
|
||
When I follow "Pointless Pseud"
|
||
And I follow "Series (1)"
|
||
Then the page title should include "Pointless Pseud - Series"
|
||
|
||
Scenario: Rename a series
|
||
Given I am logged in as a random user
|
||
When I add the work "WALL-E" to series "Robots"
|
||
Then I should see "Part 1 of Robots" within "div#series"
|
||
And I should see "Part 1 of Robots" within "dd.series"
|
||
When I view the series "Robots"
|
||
And I follow "Edit Series"
|
||
And I fill in "Series Title" with "Many a Robot"
|
||
And I wait 2 seconds
|
||
And I press "Update"
|
||
Then I should see "Series was successfully updated."
|
||
And I should see "Many a Robot"
|
||
# Work blurbs should be updated.
|
||
When I follow "My Dashboard"
|
||
Then I should see "Part 1 of Many a Robot" within "#user-works"
|
||
# Work metas should be updated.
|
||
When I view the work "WALL-E"
|
||
Then I should see "Part 1 of Many a Robot" within "div#series"
|
||
And I should see "Part 1 of Many a Robot" within "dd.series"
|
||
|
||
Scenario: Post
|
||
Given I am logged in as "whoever" with password "whatever"
|
||
And I add the work "public" to series "be_public"
|
||
When I follow "be_public"
|
||
Then I should not see the image "title" text "Restricted" within "h2"
|
||
|
||
Scenario: View user's series index
|
||
Given I am logged in as "whoever" with password "whatever"
|
||
And I add the work "grumble" to series "polarbears"
|
||
When I go to whoever's series page
|
||
Then I should see "1 Series by whoever"
|
||
And I should see "polarbears"
|
||
|
||
Scenario: Series index for maaany series
|
||
Given I am logged in as "whoever" with password "whatever"
|
||
And I add the work "grumble" to "32" series "penguins"
|
||
When I go to whoever's series page
|
||
Then I should see "penguins30"
|
||
When I follow "Next"
|
||
Then I should see "penguins0"
|
||
|
||
Scenario: Series show page with many works
|
||
Given I am logged in as "author"
|
||
And I post the work "Caesar" as part of a series "Salads"
|
||
And I post the work "Chicken" as part of a series "Salads"
|
||
And I post the work "Pasta" as part of a series "Salads"
|
||
And I post the work "Spring" as part of a series "Salads"
|
||
And I post the work "Chef" as part of a series "Salads"
|
||
And there are 3 works per series page
|
||
When I view the series "Salads"
|
||
Then I should see "Caesar"
|
||
And I should see "Chicken"
|
||
And I should see "Pasta"
|
||
When I follow "Next"
|
||
Then I should see "Spring"
|
||
And I should see "Chef"
|
||
|
||
Scenario: Removing self as co-creator from co-created series when you are the only creator of a work in the series.
|
||
Given I am logged in as "sun"
|
||
And the user "moon" allows co-creators
|
||
And I post the work "Sweetie Bell" as part of a series "Ponies"
|
||
When I view the series "Ponies"
|
||
And I follow "Edit Series"
|
||
And I try to invite the co-author "moon"
|
||
And I press "Update"
|
||
Then I should see "Series was successfully updated."
|
||
But I should not see "moon"
|
||
When the user "moon" accepts all co-creator requests
|
||
Then "moon" should be a creator of the series "Ponies"
|
||
When I view the series "Ponies"
|
||
And I follow "Remove Me As Co-Creator"
|
||
Then I should see "Sorry, we can't remove all creators of a work."
|
||
|
||
Scenario: Removing self as co-creator from co-created series
|
||
Given basic tags
|
||
And the user "son" allows co-creators
|
||
When I am logged in as "moon" with password "testuser"
|
||
And I coauthored the work "Sweetie Bell" as "moon" with "son"
|
||
And I edit the work "Sweetie Bell"
|
||
And I fill in "work_series_attributes_title" with "Ponies"
|
||
And I post the work
|
||
Then I should see "Work was successfully updated."
|
||
And "moon" should be a creator of the series "Ponies"
|
||
And "son" should be a creator on the series "Ponies"
|
||
# Delay to make sure the cache is expired
|
||
And it is currently 1 second from now
|
||
When I follow "Remove Me As Co-Creator"
|
||
Then I should see "You have been removed as a creator from the series and its works."
|
||
And "moon" should not be the creator of the series "Ponies"
|
||
And "son" should be a creator on the series "Ponies"
|
||
When I go to moon's works page
|
||
Then I should not see "Sweetie Bell"
|
||
|
||
Scenario: Delete a series
|
||
Given I am logged in as "cereal" with password "yumyummy"
|
||
And I add the work "Snap" to series "Krispies"
|
||
When I view the series "Krispies"
|
||
And I follow "Delete Series"
|
||
And I press "Yes, Delete Series"
|
||
Then I should see "Series was successfully deleted."
|
||
|
||
Scenario: A work's series information is visible and up to date when previewing the work while posting or editing
|
||
Given I am logged in as "author"
|
||
And "author" creates the pseud "Pointless Pseud"
|
||
And I set up the draft "Sweetie Belle" as part of a series "Ponies"
|
||
When I press "Preview"
|
||
Then I should see "Part 1 of Ponies"
|
||
When I press "Post"
|
||
And I set up the draft "Rainbow Dash" as part of a series "Ponies" using the pseud "Pointless Pseud"
|
||
And I press "Preview"
|
||
Then I should see "Pointless Pseud"
|
||
And I should see "Part 2 of Ponies"
|
||
When I edit the work "Rainbow Dash"
|
||
And I fill in "Or create and use a new one:" with "Black Beauty"
|
||
And I wait 2 seconds
|
||
And I press "Preview"
|
||
Then I should see "Part 2 of Ponies" within "dd.series"
|
||
And I should see "Part 1 of Black Beauty" within "dd.series"
|
||
|
||
Scenario: A series's metadata is visible when viewing the series
|
||
Given I am logged in as a random user
|
||
And I post the work "Story" as part of a series "Excellent Series"
|
||
And I bookmark the series "Excellent Series"
|
||
When I view the series "Excellent Series"
|
||
Then I should see "Words: 6" within ".series.meta"
|
||
And I should see "Bookmarks: 1" within ".series.meta"
|
||
And I should see "Works: 1" within ".series.meta"
|
||
|
||
Scenario: When editing a series, the title field should not escape HTML
|
||
Given I am logged in as "whoever"
|
||
And I post the work "whatever" as part of a series "What a title! :< :& :>"
|
||
And I go to whoever's series page
|
||
And I follow "What a title! :< :& :>"
|
||
And I follow "Edit Series"
|
||
Then I should see "What a title! :< :& :>" in the "Series Title" input
|
||
|
||
Scenario: You can edit a series to add someone as a co-creator if their preferences are set to permit it.
|
||
Given I am logged in as "foobar"
|
||
And the user "barbaz" exists and is activated
|
||
And the user "barbaz" allows co-creators
|
||
And I post the work "Behind her back she’s Gentleman Jack" as part of a series "Gentleman Jack"
|
||
When I view the series "Gentleman Jack"
|
||
And I follow "Edit Series"
|
||
And I try to invite the co-author "barbaz"
|
||
And I press "Update"
|
||
Then I should see "Series was successfully updated."
|
||
But I should not see "barbaz"
|
||
And 1 email should be delivered to "barbaz"
|
||
And the email should contain "The user foobar has invited your pseud barbaz to be listed as a co-creator on the following series"
|
||
When I am logged in as "barbaz"
|
||
And I follow "Gentleman Jack" in the email
|
||
Then I should not see "Edit Series"
|
||
When I follow "Co-Creator Requests page"
|
||
And I check "selected[]"
|
||
And I wait 2 seconds
|
||
And I press "Accept"
|
||
Then I should see "You are now listed as a co-creator on Gentleman Jack."
|
||
When I follow "Gentleman Jack"
|
||
Then I should see "Edit Series"
|
||
And "barbaz" should be a co-creator of the series "Gentleman Jack"
|
||
|
||
Scenario: You cannot edit a series to add someone as a co-creator if their preferences don't permit it.
|
||
Given I am logged in as "foobar"
|
||
And the user "barbaz" exists and is activated
|
||
And the user "barbaz" disallows co-creators
|
||
And I post the work "Behind her back she’s Gentleman Jack" as part of a series "Gentleman Jack"
|
||
When I view the series "Gentleman Jack"
|
||
And I follow "Edit Series"
|
||
And I try to invite the co-author "barbaz"
|
||
And I press "Update"
|
||
Then I should see "Invalid creator: barbaz does not allow others to invite them to be a co-creator."
|
||
When I press "Update"
|
||
Then I should see "Series was successfully updated."
|
||
And "barbaz" should not be the creator of the series "Gentleman Jack"
|
||
|
||
Scenario: If you edit a series to add a co-creator with an ambiguous pseud, you will be prompted to clarify which user you mean.
|
||
Given "myself" has the pseud "Me"
|
||
And "herself" has the pseud "Me"
|
||
And the user "myself" allows co-creators
|
||
And the user "herself" allows co-creators
|
||
When I am logged in as "testuser" with password "testuser"
|
||
And I post the work "Behind her back she’s Gentleman Jack" as part of a series "Gentleman Jack"
|
||
And I view the series "Gentleman Jack"
|
||
And I follow "Edit Series"
|
||
And I try to invite the co-author "Me"
|
||
And I press "Update"
|
||
Then I should see "There's more than one user with the pseud Me."
|
||
When I select "myself" from "Please choose the one you want:"
|
||
And I press "Update"
|
||
Then I should see "Series was successfully updated."
|
||
And I should not see "Me (myself)"
|
||
And 1 email should be delivered to "myself"
|
||
And the email should contain "The user testuser has invited your pseud Me to be listed as a co-creator on the following series"
|
||
When the user "myself" accepts all co-creator requests
|
||
And I view the series "Gentleman Jack"
|
||
Then "testuser" should be the creator of the series "Gentleman Jack"
|
||
And "Me (myself)" should be the creator of the series "Gentleman Jack"
|
||
And I should see "Me (myself), testuser"
|