@comments Feature: Comment on work In order to give feedback As a reader I'd like to comment on a work Scenario: Comment links from downloads and static pages Given the work "Generic Work" When I am logged in as "commenter" And I visit the new comment page for the work "Generic Work" Then I should see the comment form Scenario: When logged in I can comment on a work Given the work "The One Where Neal is Awesome" When I am logged in as "commenter" And I view the work "The One Where Neal is Awesome" And I fill in "Comment" with "I loved this! 😍🤩" And I press "Comment" Then I should see "Comment created!" And I should see "I loved this! 😍🤩" within ".odd" Scenario: When a one-shot work becomes multi-chapter, all previous comments say "on Chapter 1" Given the work "The One Where Neal is Awesome" And I am logged in as "commenter" And I post the comment "I loved this! 😍🤩" on the work "The One Where Neal is Awesome" When I view the work "The One Where Neal is Awesome" with comments Then I should not see "commenter on Chapter 1" within "h4.heading.byline" When a chapter is added to "The One Where Neal is Awesome" And I view the work "The One Where Neal is Awesome" in full mode And I follow "Comments (1)" When "AO3-4214" is fixed # Then I should see "commenter on Chapter 1" within "h4.heading.byline" Scenario: When commenting on a multi-chapter work, there should be a link to the chapter on the comment Given the work "The One Where Neal is Awesome" And a chapter is added to "The One Where Neal is Awesome" And I am logged in as "commenter" And I post the comment "I loved this! 😍🤩" on the work "The One Where Neal is Awesome" Then I should see "commenter on Chapter 1" And I should see a link "Chapter 1" within ".comment h4.heading.byline" And I should see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline" When I follow "Thread" Then I should see a link "Chapter 1" within ".comment h4.heading.byline" And I should see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline" Scenario: When commenting on a single-chapter work, there should not be a link to the chapter on the comment Given the work "The One Where Neal is Awesome" And I am logged in as "commenter" And I post the comment "I loved this! 😍🤩" on the work "The One Where Neal is Awesome" Then I should see "commenter" And I should not see "commenter on Chapter 1" And I should not see a link "Chapter 1" within ".comment h4.heading.byline" And I should not see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline" When I follow "Thread" Then I should not see a link "Chapter 1" within ".comment h4.heading.byline" And I should not see a page link to the 1st chapter of the work "The One Where Neal is Awesome" within ".comment h4.heading.byline" Scenario: I cannot comment with a pseud that I don't own Given the work "Random Work" When I attempt to comment on "Random Work" with a pseud that is not mine Then I should not see "Comment created!" And I should not see "on Chapter 1" And I should see "You can't comment with that pseud" Scenario: I cannot edit in a pseud that I don't own Given the work "Random Work" When I attempt to update a comment on "Random Work" with a pseud that is not mine Then I should not see "Comment was successfully updated" And I should see "You can't comment with that pseud" Scenario: Comment editing When I am logged in as "author" And I post the work "The One Where Neal is Awesome" When I am logged in as "commenter" And I post the comment "Mistaken comment" on the work "The One Where Neal is Awesome" And it is currently 1 second from now And I follow "Edit" And I fill in "Comment" with "Actually, I meant something different" And I press "Update" Then I should see "Comment was successfully updated" And I should see "Actually, I meant something different" And I should not see "Mistaken comment" And I should see Last Edited in the right timezone Scenario: Comment threading, comment editing When I am logged in as "author" And I post the work "The One Where Neal is Awesome" When I am logged in as "commenter" And I post the comment "I loved this!" on the work "The One Where Neal is Awesome" When I follow "Reply" And I fill in "Comment" with "I wanted to say more." within ".odd" And I press "Comment" within ".odd" Then I should see "Comment created!" And I should see "I wanted to say more." within ".even" When I am logged in as "commenter2" And I view the work "The One Where Neal is Awesome" And I fill in "Comment" with "I loved it, too." And I press "Comment" Then I should see "Comment created!" And I should see "I loved it, too." When I am logged in as "author" And I view the work "The One Where Neal is Awesome" And I follow "Comments (3)" And I follow "Reply" within ".even" And I fill in "Comment" with "Thank you." within ".even" And I press "Comment" within ".even" Then I should see "Comment created!" And I should see "Thank you." within "ol.thread li ol.thread li ol.thread li" When I am logged in as "commenter" And I view the work "The One Where Neal is Awesome" And I follow "Comments (4)" And I follow "Reply" within ".thread .thread .odd" And I fill in "Comment" with "Mistaken comment" within ".thread .thread .odd" And I press "Comment" within ".thread .thread .odd" And it is currently 1 second from now And I follow "Edit" within "ol.thread li ol.thread li ol.thread li ol.thread ul.actions" And I fill in "Comment" with "Actually, I meant something different" And I press "Update" Then I should see "Comment was successfully updated" And I should see "Actually, I meant something different" And I should not see "Mistaken comment" And I should see Last Edited in the right timezone When I am logged in as "commenter3" And I view the work "The One Where Neal is Awesome" And I follow "Comments (5)" And I follow "Reply" within ".thread .even" And I fill in "Comment" with "This should be nested" within ".thread .even" And I press "Comment" within ".thread .even" Then I should see "Comment created!" And I should not see "Mistaken comment" And I should see "Actually, I meant something different" within "ol.thread li ol.thread li ol.thread li ol.thread" And I should see "I loved it, too." within "ol.thread" And I should see "Thank you." within "ol.thread li ol.thread li ol.thread" And I should see "This should be nested" within "ol.thread li ol.thread li ol.thread" And I should not see "This should be nested" within ".thread .thread .thread .thread" And I should see "I loved this" within "ol.thread" Scenario: A leaves a comment, B replies to it, A deletes their comment, B edits the comment, A should not receive a comment edit notification email Given the work "Generic Work" by "creator" And a comment "A's comment (to be deleted)" by "User_A" on the work "Generic Work" And a reply "B's comment (to be edited)" by "User_B" on the work "Generic Work" And 1 email should be delivered to "User_A" And all emails have been delivered When I am logged in as "User_A" And I view the work "Generic Work" with comments And I delete the comment When I am logged in as "User_B" And I view the work "Generic Work" with comments And I follow "Edit" And I fill in "Comment" with "B's improved comment (edited)" And I press "Update" Then 0 emails should be delivered to "User_A" Scenario: Try to post an invalid comment When I am logged in as "author" And I post the work "Generic Work" When I am logged in as "commenter" And I view the work "Generic Work" And I compose an invalid comment And I press "Comment" Then I should see "must be less than" And I should see "Now, we can devour the gods, together!" When I fill in "Comment" with "This is a valid comment" And I press "Comment" And I follow "Reply" within ".thread .odd" And I compose an invalid comment within ".thread .odd" And I press "Comment" within ".thread .odd" Then I should see "must be less than" And I should see "Now, we can devour the gods, together!" When I fill in "Comment" with "This is a valid reply comment" And I press "Comment" And it is currently 1 second from now And I follow "Edit" And I compose an invalid comment And I press "Update" Then I should see "must be less than" And I should see "Now, we can devour the gods, together!" Scenario: Don't receive comment notifications of your own comments by default When I am logged in as "author" And I post the work "Generic Work" When I am logged in as "commenter" And I post the comment "Something" on the work "Generic Work" Then "author" should be emailed And "commenter" should not be emailed Scenario: Set preference and receive comment notifications of your own comments When I am logged in as "author" And I post the work "Generic Work" When I am logged in as "commenter" And I set my preferences to turn on copies of my own comments And I post the comment "Something" on the work "Generic Work" Then "author" should be emailed And "commenter" should be emailed And 1 email should be delivered to "commenter" Scenario: Try to post a comment with a < angle bracket before a linebreak, without a space before the bracket Given the work "Generic Work" And I am logged in as "commenter" And I view the work "Generic Work" When I fill in "Comment" with """ Here is a comment with a bracket abc< xyz """ And I press "Comment" Then I should see "Comment created!" Scenario: Try to post a comment with a < angle bracket before a linebreak, with a space before the bracket Given the work "Generic Work" And I am logged in as "commenter" And I view the work "Generic Work" When I fill in "Comment" with """ Here is a comment with a bracket abc < xyz """ And I press "Comment" Then I should see "Comment created!" Scenario: Users with different time zone preferences should see the time in their own timezone Given the work "Generic Work" And I am logged in as "commenter" And the user "commenter" sets the time zone to "UTC" And I post the comment "Something" on the work "Generic Work" And it is currently 1 second from now And I follow "Edit" And I fill in "Comment" with "Something else" And I press "Update" Then I should see "UTC" within ".posted.datetime" And I should see "UTC" within ".edited.datetime" When I am logged in as "reader" And the user "reader" sets the time zone to "Brisbane" And I view the work "Generic Work" with comments Then I should see "AEST" within ".posted.datetime" And I should see "AEST" within ".edited.datetime" Scenario: It hides comment actions when a reply form is open Given the work "The One Where Neal is Awesome" And I am logged in as "commenter" And I post the comment "I loved this!" on the work "The One Where Neal is Awesome" When I follow "Reply" Then I should see "Comment as commenter" And I should not see "Thread" @javascript Scenario: It shows and hides cancel buttons properly Given the work "Aftermath" by "creator" with guest comments enabled And a comment "Ugh." by "pest" on the work "Aftermath" When I view the work "Aftermath" And I display comments Then I should see "Ugh." When I open the reply box Then I should see "Cancel" But I should not see "Reply" When I cancel the reply box Then I should not see "Cancel" But I should see "Reply" @javascript Scenario: It shows and hides cancel buttons properly even on a new page Given the work "Aftermath" by "creator" with guest comments enabled And a comment "Ugh." by "pest" on the work "Aftermath" When I view the work "Aftermath" And I display comments Then I should see "Ugh." # Go to /chapters/XX?add_comment_reply_id=YY&show_comments=true#comment_YY"; akin to a Ctrl+Click on "Reply" When I reply on a new page Then I should see "Cancel" But I should not see "Reply" When I cancel the reply box Then I should not see "Cancel" But I should see "Reply" Scenario: Cannot comment (no form) while logged as admin Given the work "Generic Work" by "creator" with guest comments enabled And I am logged in as an admin And I view the work "Generic Work" Then I should see "Generic Work" And I should not see "Post Comment" And I should not see a "Comment" button And I should see "Please log out of your admin account to comment." Scenario: Cannot reply to comments (no button) while logged as admin Given the work "Generic Work" by "creator" with guest comments enabled When I am logged in as "commenter" And I view the work "Generic Work" And I post a comment "Woohoo" When I am logged in as an admin And I view the work "Generic Work" And I follow "Comments (1)" Then I should see "Woohoo" And I should not see "Reply" When I am logged out And I view the work "Generic Work" And I follow "Comments (1)" Then I should see "Woohoo" And I should see "Reply"