otwarchive-symphonyarchive/features/comments_and_kudos/kudos.feature

262 lines
11 KiB
Gherkin
Raw Normal View History

2026-03-11 22:22:11 +00:00
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!"