161 lines
5.4 KiB
Gherkin
161 lines
5.4 KiB
Gherkin
|
|
Feature: Admin Find Users page
|
||
|
|
|
||
|
|
Background:
|
||
|
|
Given the following activated users exist
|
||
|
|
| login | email |
|
||
|
|
| userA | a@ao3.org |
|
||
|
|
| userB | b@bo3.org |
|
||
|
|
| userCB | cb@bo3.org |
|
||
|
|
And the user "userB" exists and has the role "archivist"
|
||
|
|
And I am logged in as a super admin
|
||
|
|
And all emails have been delivered
|
||
|
|
And I go to the manage users page
|
||
|
|
|
||
|
|
Scenario: The Find Users page shows no results before searching and all results with blank search
|
||
|
|
Then I should not see "userA"
|
||
|
|
And I should not see "userB"
|
||
|
|
And I should not see "userCB"
|
||
|
|
And I should not see "found"
|
||
|
|
When I submit
|
||
|
|
Then I should see "userA"
|
||
|
|
And I should see "userB"
|
||
|
|
And I should see "userCB"
|
||
|
|
|
||
|
|
Scenario: The Find Users page performs a partial match on name with * wildcard
|
||
|
|
When I fill in "Name" with "u*er*"
|
||
|
|
And I submit
|
||
|
|
Then I should see "userA"
|
||
|
|
And I should see "userB"
|
||
|
|
And I should see "userCB"
|
||
|
|
|
||
|
|
Scenario: The Find Users page performs an exact match on name by default
|
||
|
|
When I fill in "Name" with "user"
|
||
|
|
And I submit
|
||
|
|
Then I should see "0 users found"
|
||
|
|
When I fill in "Name" with "userA"
|
||
|
|
And I submit
|
||
|
|
Then the field labeled "user_email" should contain "a@ao3.org"
|
||
|
|
But I should not see "UserB"
|
||
|
|
|
||
|
|
Scenario: The Find Users page searches past logins only if the option is selected
|
||
|
|
When I am logged in as "userA"
|
||
|
|
And I visit the change username page for userA
|
||
|
|
And I fill in "New username" with "userD"
|
||
|
|
And I fill in "Password" with "password"
|
||
|
|
And I press "Change"
|
||
|
|
Then I should get confirmation that I changed my username
|
||
|
|
When I am logged in as a "support" admin
|
||
|
|
And I go to the manage users page
|
||
|
|
And I fill in "Name" with "userA"
|
||
|
|
And I submit
|
||
|
|
Then I should see "0 users found"
|
||
|
|
When I check "Include past usernames and emails"
|
||
|
|
And I submit
|
||
|
|
Then I should see "1 user found"
|
||
|
|
And I should see "userD"
|
||
|
|
# Only selected admins can search past logins
|
||
|
|
When I am logged in as a "translation" admin
|
||
|
|
And I go to the manage users page
|
||
|
|
Then I should not see "Include past usernames and emails"
|
||
|
|
|
||
|
|
Scenario: The Find Users page performs a partial match by email with * wildcard
|
||
|
|
When I fill in "Email" with "*bo3*"
|
||
|
|
And I submit
|
||
|
|
Then I should see "userB"
|
||
|
|
And I should see "userCB"
|
||
|
|
But I should not see "userA"
|
||
|
|
|
||
|
|
Scenario: The Find Users page performs an exact match on email by default
|
||
|
|
When I fill in "Email" with "ao3"
|
||
|
|
And I submit
|
||
|
|
Then I should see "0 users found"
|
||
|
|
When I fill in "Email" with "a@ao3.org"
|
||
|
|
And I submit
|
||
|
|
Then I should see "userA"
|
||
|
|
But I should not see "UserB"
|
||
|
|
|
||
|
|
Scenario: The Find Users page searches past emails if the option is selected
|
||
|
|
When I am logged in as "userA"
|
||
|
|
And I change my email to "d@ao3.org"
|
||
|
|
And I am logged in as a "policy_and_abuse" admin
|
||
|
|
And I go to the manage users page
|
||
|
|
And I fill in "Email" with "a@ao3.org"
|
||
|
|
And I submit
|
||
|
|
Then I should see "0 users found"
|
||
|
|
When I check "Include past usernames and emails"
|
||
|
|
And I submit
|
||
|
|
Then I should see "1 user found"
|
||
|
|
And I should see "userA"
|
||
|
|
And the field labeled "user_email" should contain "d@ao3.org"
|
||
|
|
|
||
|
|
Scenario: The Find Users page performs an exact match by role
|
||
|
|
When I select "Archivist" from "Role"
|
||
|
|
And I submit
|
||
|
|
Then I should see "userB"
|
||
|
|
But I should not see "userA"
|
||
|
|
And I should not see "userCB"
|
||
|
|
|
||
|
|
Scenario: The Find Users page performs an exact match by ID in addition to any other criteria
|
||
|
|
When the search criteria contains the ID for "userB"
|
||
|
|
And I submit
|
||
|
|
Then I should see "1 user found"
|
||
|
|
And I should see "userB"
|
||
|
|
But I should not see "userA"
|
||
|
|
And I should not see "userCB"
|
||
|
|
When I fill in "Name" with "*A"
|
||
|
|
And I submit
|
||
|
|
Then I should see "0 users found"
|
||
|
|
When I fill in "Name" with "*B"
|
||
|
|
And I submit
|
||
|
|
Then I should see "1 user found"
|
||
|
|
And I should see "userB"
|
||
|
|
|
||
|
|
# Bulk email search
|
||
|
|
Scenario: The Bulk Email Search page finds all existing matching users
|
||
|
|
When I go to the Bulk Email Search page
|
||
|
|
And I fill in "Email addresses *" with
|
||
|
|
"""
|
||
|
|
b@bo3.org
|
||
|
|
a@ao3.org
|
||
|
|
"""
|
||
|
|
And I press "Find"
|
||
|
|
Then I should see "userB"
|
||
|
|
And I should see "userA"
|
||
|
|
But I should not see "userCB"
|
||
|
|
And I should not see "Not found"
|
||
|
|
|
||
|
|
Scenario: The Bulk Email Search page lists emails found, not found and duplicates
|
||
|
|
When I go to the Bulk Email Search page
|
||
|
|
And I fill in "Email addresses *" with
|
||
|
|
"""
|
||
|
|
b@bo3.org
|
||
|
|
a@ao3.org
|
||
|
|
c@co3.org
|
||
|
|
C@CO3.org
|
||
|
|
"""
|
||
|
|
And I press "Find"
|
||
|
|
Then I should see "2 found"
|
||
|
|
And I should see "1 not found"
|
||
|
|
And I should see "1 duplicate"
|
||
|
|
And I should see "Not found"
|
||
|
|
|
||
|
|
Scenario: The Bulk Email Search page finds an exact match
|
||
|
|
When I go to the Bulk Email Search page
|
||
|
|
And I fill in "Email addresses *" with "b@bo3.org"
|
||
|
|
And I press "Find"
|
||
|
|
Then I should see "userB"
|
||
|
|
But I should not see "userA"
|
||
|
|
And I should not see "userCB"
|
||
|
|
And I should not see "Not found"
|
||
|
|
|
||
|
|
Scenario: Admins can download a CSV of found emails
|
||
|
|
When I go to the Bulk Email Search page
|
||
|
|
And I fill in "Email addresses *" with
|
||
|
|
"""
|
||
|
|
b@bo3.org
|
||
|
|
a@ao3.org
|
||
|
|
c@co3.org
|
||
|
|
"""
|
||
|
|
And I press "Download CSV"
|
||
|
|
Then I should download a csv file with 4 rows and the header row "Email Username"
|