otwarchive-symphonyarchive/features/users/blocking.feature

138 lines
5.9 KiB
Gherkin
Raw Normal View History

2026-03-11 22:22:11 +00:00
Feature: Blocking
Scenario: Users can block from my blocked users page
Given the user "pest" exists and is activated
And I am logged in as "blocker"
When I go to the blocked users page for "blocker"
And I fill in "blocked_id" with "pest"
And I press "Block"
And I press "Yes, Block User"
Then I should see "You have blocked the user pest."
And the user "blocker" should have a block for "pest"
Scenario Outline: Users can block from various user-related pages
Given the user "pest" exists and is activated
And I am logged in as "blocker"
When I go to <page>
And I follow "Block"
And I press "Yes, Block User"
Then I should see "You have blocked the user pest."
And the user "blocker" should have a block for "pest"
And the blurb should not say when "blocker" blocked "pest"
Examples:
| page |
| pest's user page |
| pest's profile page |
| the dashboard page for user "pest" with pseud "pest" |
Scenario: Users can block from the comments
Given the work "Aftermath"
And a comment "Ugh." by "pest" on the work "Aftermath"
And I am logged in as "blocker"
When I view the work "Aftermath" with comments
And I follow "Block"
And I press "Yes, Block User"
Then I should see "You have blocked the user pest."
And the user "blocker" should have a block for "pest"
Scenario: Users cannot block official users
Given the user "pest" exists and has the role "official"
And I am logged in as "blocker"
When I go to pest's user page
And I follow "Block"
Then I should see "Sorry, you can't block an official user."
And I should not see a "Yes, Block User" button
Scenario: Users cannot block themselves
Given the user "pest" exists and is activated
And I am logged in as "pest"
When I go to pest's user page
Then I should not see a link "Block"
When I go to the blocked users page for "pest"
And I fill in "blocked_id" with "pest"
And I press "Block"
Then I should see "Sorry, you can't block yourself."
And I should not see a "Yes, Block User" button
Scenario: Users can unblock from the blocked users page
Given the user "unblocker" has blocked the user "improving"
And I am logged in as "unblocker"
When I go to the blocked users page for "unblocker"
And I follow "Unblock"
And I press "Yes, Unblock User"
Then I should see "You have unblocked the user improving."
And the user "unblocker" should not have a block for "improving"
Scenario Outline: Users can unblock from various user-related pages
Given the user "unblocker" has blocked the user "improving"
And I am logged in as "unblocker"
When I go to <page>
And I follow "Unblock"
And I press "Yes, Unblock User"
Then I should see "You have unblocked the user improving."
And the user "unblocker" should not have a block for "improving"
Examples:
| page |
| improving's user page |
| improving's profile page |
| the dashboard page for user "improving" with pseud "improving" |
Scenario: Users can unblock from the comments
Given the user "unblocker" has blocked the user "improving"
And the work "Aftermath"
And a comment "Wonderful!" by "improving" on the work "Aftermath"
And I am logged in as "unblocker"
When I view the work "Aftermath" with comments
And I follow "Unblock"
And I press "Yes, Unblock User"
Then I should see "You have unblocked the user improving."
And the user "unblocker" should not have a block for "improving"
Scenario: The blocked users page is paginated
Given there are 2 blocked users per page
And the user "blocker" has blocked the user "pest1"
And the user "blocker" has blocked the user "pest2"
And the user "blocker" has blocked the user "pest3"
And the user "blocker" has blocked the user "pest4"
When I am logged in as "blocker"
And I go to the blocked users page for "blocker"
Then I should see "pest4" within "ul.pseud li:nth-child(1)"
And I should see "pest3" within "ul.pseud li:nth-child(2)"
And I should not see "pest2"
And I should not see "pest1"
When I follow "2" within ".pagination"
Then I should see "pest2" within "ul.pseud li:nth-child(1)"
And I should see "pest1" within "ul.pseud li:nth-child(2)"
Scenario Outline: Authorized admins can see the blocked users page
Given the user "blocker" has blocked the user "pest"
When I am logged in as a "<role>" admin
And I go to the blocked users page for "blocker"
Then I should see "pest"
And the blurb should say when "blocker" blocked "pest"
And I should see a link "Unblock"
When I follow "Unblock"
Then I should see "Sorry, you don't have permission to access the page you were trying to reach."
And the user "blocker" should have a block for "pest"
Examples:
| role |
| superadmin |
| policy_and_abuse |
| support |
Scenario: Users are told about blocking effects on gift-giving
Given the user "pest" exists and is activated
And I am logged in as "blocker"
When I go to the blocked users page for "blocker"
Then I should see "giving you gift works"
Given the user "unblocker" has blocked the user "improving"
And I am logged in as "unblocker"
When I go to the blocked users page for "unblocker"
Then I should see "improving"
And I should see "giving you gift works"
When I follow "Unblock"
Then I should see a "Yes, Unblock User" button
And I should see "giving you gift works"