261 lines
11 KiB
Gherkin
261 lines
11 KiB
Gherkin
Feature: Kudos
|
|
In order to show appreciation
|
|
As a reader
|
|
I want to leave kudos
|
|
|
|
Background:
|
|
|
|
Given the following activated users exist
|
|
| login | email |
|
|
| myname1 | myname1@foo.com |
|
|
| myname2 | myname2@foo.com |
|
|
| myname3 | myname3@foo.com |
|
|
And the work "Awesome Story" by "myname1"
|
|
|
|
Scenario: Leaving kudos
|
|
|
|
Given I am logged in as "myname2"
|
|
And all emails have been delivered
|
|
And I view the work "Awesome Story"
|
|
Then I should not see "left kudos on this work"
|
|
|
|
# Note: this step cannot be put into the steps file because of the heart character
|
|
When I press "Kudos ♥"
|
|
Then I should see "myname2 left kudos on this work!"
|
|
# make sure no emails go out until notifications are sent
|
|
And 0 emails should be delivered
|
|
When kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email should contain "myname2"
|
|
And the email should contain "left kudos"
|
|
And the email should contain "."
|
|
And all emails have been delivered
|
|
When I press "Kudos ♥"
|
|
Then I should see "You have already left kudos here. :)"
|
|
And I should not see "myname2 and myname2 left kudos on this work!"
|
|
|
|
When I am logged out
|
|
And I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "Thank you for leaving kudos!"
|
|
And I should see "myname2 as well as 1 guest left kudos on this work!"
|
|
When I press "Kudos ♥"
|
|
Then I should see "You have already left kudos here. :)"
|
|
When kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email should contain "A guest"
|
|
And the email should contain "left kudos"
|
|
And the email should contain "."
|
|
|
|
When I am logged in as "myname3"
|
|
And I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "myname3 and myname2 as well as 1 guest left kudos on this work!"
|
|
When I am logged in as "myname1"
|
|
And I view the work "Awesome Story"
|
|
Then I should not see "Kudos ♥"
|
|
|
|
When I go to the work kudos page for "Awesome Story"
|
|
Then I should see "2 Users Who Left Kudos on Awesome Story"
|
|
And I should see "1 guest has also left kudos"
|
|
And I should see "myname3 and myname2 left kudos on this work!"
|
|
|
|
@javascript
|
|
Scenario: Leaving kudos with JavaScript enabled
|
|
|
|
# As a registered user
|
|
When I am logged in as "myname2"
|
|
And I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "Thank you for leaving kudos!"
|
|
And I should see "myname2 left kudos on this work!"
|
|
When I press "Kudos ♥"
|
|
Then I should see "You have already left kudos here. :)"
|
|
And I should not see "myname2 and myname2 left kudos on this work!"
|
|
|
|
# As another registered user
|
|
When I am logged in as "myname3"
|
|
And I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "Thank you for leaving kudos!"
|
|
And I should see "myname3 and myname2 left kudos on this work!"
|
|
When I press "Kudos ♥"
|
|
Then I should see "You have already left kudos here. :)"
|
|
|
|
# As a guest user
|
|
When I am logged out
|
|
And I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "Thank you for leaving kudos!"
|
|
And I should see "myname3 and myname2 as well as 1 guest left kudos on this work!"
|
|
When I press "Kudos ♥"
|
|
Then I should see "You have already left kudos here. :)"
|
|
|
|
Scenario: Leaving kudos on a multi-chapter work
|
|
|
|
Given I am logged in as "myname1"
|
|
And I post the chaptered work "Epic Saga"
|
|
And a draft chapter is added to "Epic Saga"
|
|
When I am logged in as "myname3"
|
|
And I view the work "Epic Saga"
|
|
And I press "Kudos ♥"
|
|
Then I should see kudos on every chapter
|
|
When I am logged in as "myname1"
|
|
And I view the work "Epic Saga"
|
|
Then I should see kudos on every chapter but the draft
|
|
|
|
Scenario: Deleting user after leaving kudos should orphan them
|
|
|
|
Given I am logged in as "myname3"
|
|
When "myname3" creates the default pseud "foobar"
|
|
And I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "myname3 left kudos on this work!"
|
|
When "myname3" deletes their account
|
|
And I view the work "Awesome Story"
|
|
And "AO3-2195" is fixed
|
|
# Then I should see "1 guest left kudos on this work!"
|
|
|
|
Scenario: Redirection when leaving kudos on a middle chapter, with default preferences
|
|
|
|
Given the chaptered work setup
|
|
And I am logged in as a random user
|
|
When I view the work "BigBang"
|
|
And I view the 2nd chapter
|
|
And I press "Kudos ♥"
|
|
Then I should see "Chapter 2" within "div#chapters"
|
|
And I should not see "Chapter 1" within "div#chapters"
|
|
|
|
Scenario: Redirection when leaving kudos in temporary "Entire Work" mode, with default preferences
|
|
|
|
Given the chaptered work setup
|
|
And I am logged in as a random user
|
|
When I view the work "BigBang" in full mode
|
|
And I press "Kudos ♥"
|
|
Then I should see "Chapter 2" within "div#chapters"
|
|
And I should see "Chapter 3" within "div#chapters"
|
|
|
|
Scenario: Batched kudos email
|
|
|
|
Given the work "Another Awesome Story" by "myname1"
|
|
And the work "Meh Story" by "myname1"
|
|
And the work "Okay Story" by "myname1"
|
|
And all emails have been delivered
|
|
And the kudos queue is cleared
|
|
And I am logged in as "myname2"
|
|
And I leave kudos on "Awesome Story"
|
|
And I leave kudos on "Another Awesome Story"
|
|
And I leave kudos on "Okay Story"
|
|
And I am logged in as "someone_else"
|
|
And I leave kudos on "Awesome Story"
|
|
And I am logged out
|
|
And I leave kudos on "Awesome Story"
|
|
And I leave kudos on "Another Awesome Story"
|
|
And I leave kudos on "Meh Story"
|
|
When kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email should have "You've got kudos!" in the subject
|
|
And the email should contain "myname2"
|
|
And the email should contain "someone_else"
|
|
And the email should contain "a guest"
|
|
And the email should contain "A guest"
|
|
And the email should contain "Awesome Story"
|
|
And the email should contain "Another Awesome Story"
|
|
And the email should contain "Meh Story"
|
|
And the email should not contain "0 guests"
|
|
And the email should not contain "translation missing"
|
|
|
|
Scenario: Translated kudos email
|
|
|
|
Given a locale with translated emails
|
|
And the user "myname1" enables translated emails
|
|
And all emails have been delivered
|
|
And the kudos queue is cleared
|
|
And I am logged in as "myname2"
|
|
And I leave kudos on "Awesome Story"
|
|
When kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email should have "Translated subject" in the subject
|
|
And the email to "myname1" should contain "myname2"
|
|
And the email to "myname1" should contain "Awesome Story"
|
|
And the email to "myname1" should be translated
|
|
# AO3-6042: Emails should not obey user's locale preference when locales are deactivated
|
|
When the locale preference feature flag is disabled for user "myname1"
|
|
And all emails have been delivered
|
|
And I am logged in as "myname3"
|
|
And I leave kudos on "Awesome Story"
|
|
And kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email should have "You've got kudos!" in the subject
|
|
And the email to "myname1" should contain "myname3"
|
|
And the email to "myname1" should contain "Awesome Story"
|
|
And the email to "myname1" should be non-translated
|
|
|
|
Scenario: Emails should not obey user's locale preference when localised emails for that locale are deactivated
|
|
|
|
Given a locale with translated emails
|
|
And the user "myname1" enables translated emails
|
|
And all emails have been delivered
|
|
And the kudos queue is cleared
|
|
And I am logged in as "myname2"
|
|
And I leave kudos on "Awesome Story"
|
|
When kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email to "myname1" should be translated
|
|
When translated emails are disabled for the locale
|
|
And all emails have been delivered
|
|
And I am logged in as "myname3"
|
|
And I leave kudos on "Awesome Story"
|
|
And kudos are sent
|
|
Then 1 email should be delivered to "myname1@foo.com"
|
|
And the email to "myname1" should be non-translated
|
|
|
|
Scenario: Blocked users should not see a kudos button on their blocker's works
|
|
Given the work "Aftermath" by "creator"
|
|
And the user "creator" has blocked the user "pest"
|
|
When I am logged in as "pest"
|
|
And I view the work "Aftermath"
|
|
Then I should not see a "Kudos ♥" button
|
|
|
|
Scenario: Kudos cache expires periodically to ensure deleted users are removed and renamed users are updated
|
|
Given the work "Interesting beans"
|
|
And I am logged in as "oldusername1" with password "password"
|
|
When I view the work "Interesting beans"
|
|
And I press "Kudos ♥"
|
|
Then I should see "oldusername1 left kudos on this work!"
|
|
When I visit the change username page for oldusername1
|
|
And I fill in "New username" with "newusername1"
|
|
And I fill in "Password" with "password"
|
|
And I press "Change Username"
|
|
Then I should get confirmation that I changed my username
|
|
And I should see "Hi, newusername1"
|
|
When the kudos cache has expired
|
|
And I view the work "Interesting beans"
|
|
Then I should see "newusername1 left kudos on this work!"
|
|
And I should not see "oldusername1"
|
|
When I try to delete my account as newusername1
|
|
And the kudos cache has expired
|
|
And I view the work "Interesting beans"
|
|
Then I should not see "newusername1 left kudos on this work!"
|
|
|
|
Scenario: Cannot leave kudos (no button) while logged in as admin
|
|
Given I am logged in as an admin
|
|
And I view the work "Awesome Story"
|
|
Then I should see "Awesome Story"
|
|
And I should not see a "Kudos ♥" button
|
|
|
|
@javascript
|
|
Scenario: Cannot leave kudos while logged in as a user with the official role
|
|
Given the user "clicker" exists and has the role "official"
|
|
And I am logged in as "clicker"
|
|
When I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "Please log out of your official account!"
|
|
|
|
@javascript
|
|
Scenario: Cannot leave kudos while logged in as a user with the archivist role
|
|
Given the user "clicker" exists and has the role "archivist"
|
|
And I am logged in as "clicker"
|
|
When I view the work "Awesome Story"
|
|
And I press "Kudos ♥"
|
|
Then I should see "Please log out of your archivist account!"
|