otwarchive-symphonyarchive/features/other_a/invite_queue.feature
2026-03-11 22:22:11 +00:00

183 lines
8.4 KiB
Gherkin

@admin
Feature: Invite queue management
Background:
Given I have no users
And the following users exist
| login | password |
| user1 | password |
Scenario: Can turn queue off in Admin Settings and it displays as off
Given I am logged in as a "policy_and_abuse" admin
And I go to the admin-settings page
And I uncheck "Invite from queue enabled (People can add themselves to the queue and invitations are sent out automatically)"
And I press "Update"
When I log out
And I am on the homepage
Then I should not see "Get an Invite"
And I should see "Archive of Our Own"
Scenario: Can turn queue on in Admin Settings and it displays as on
Given I am logged in as a "policy_and_abuse" admin
And account creation requires an invitation
And I go to the admin-settings page
And I check "Invite from queue enabled (People can add themselves to the queue and invitations are sent out automatically)"
And I press "Update"
When I log out
And I am on the homepage
Then I should see "Get an Invitation"
When I follow "Get an Invitation"
Then I should see "Request an invitation"
Scenario: An admin can delete people from the queue
Given an invitation request for "invitee@example.org"
And I am logged in as a "policy_and_abuse" admin
When I go to the manage invite queue page
And I press "Delete"
Then I should see "Request for invitee@example.org was removed from the queue."
And I should be on the manage invite queue page
Scenario: Visitors can join the queue and check status when invitations are required and the queue is enabled
# join queue
Given I am a visitor
And account creation requires an invitation
And the invitation queue is enabled
When I am on the homepage
And all emails have been delivered
And I follow "Get an Invitation"
Then I should see "We are sending out 10 invitations every 12 hours."
When I fill in "invite_request_email" with "test@archiveofourown.org"
And I press "Add me to the list"
Then I should see "You've been added to our queue"
# check your place in the queue - invalid address
When I check how long "testttt@archiveofourown.org" will have to wait in the invite request queue
Then I should see "Invitation Request Status"
And I should see "Sorry, we can't find the email address you entered."
And I should not see "You are currently number"
# check your place in the queue - correct address
When I check how long "test@archiveofourown.org" will have to wait in the invite request queue
Then I should see "Invitation Status for test@archiveofourown.org"
And I should see "You are currently number 1 on our waiting list! At our current rate, you should receive an invitation on or around"
Scenario: Can't add yourself to the queue when queue is off
Given the invitation queue is disabled
When I go to the invite_requests page
Then I should not see "Request an invitation"
And I should not see "invite_request_email"
And I should see "New invitation requests are currently closed."
And I should see "There are 0 people remaining on the waiting list."
And I should not see "Add me to the list"
Scenario: Can still check status when queue is off
Given the invitation queue is disabled
When I go to the invite_requests page
And I follow "check your position on the waiting list"
Then I should see the page title "Invitation Request Status"
And I should see "There are currently 0 people on the waiting list."
And I should not see "We are currently sending out"
Scenario: The queue sends out invites and user can create and activate an account
Given account creation is enabled
And the invitation queue is enabled
And account creation requires an invitation
And the invite_from_queue_at is yesterday
When I am on the homepage
And all emails have been delivered
And I follow "Get an Invitation"
When I fill in "invite_request_email" with "test@archiveofourown.org"
And I press "Add me to the list"
And the scheduled check_invite_queue job is run
Then 1 email should be delivered to test@archiveofourown.org
When I check how long "test@archiveofourown.org" will have to wait in the invite request queue
Then I should see "Invitation Request Status"
And I should see "If you can't find it, please check your email spam folder as your spam filters may have placed it there."
# invite can be used
When I am logged in as an admin
And I follow "Invitations"
And I fill in "track_invitation_invitee_email" with "test@archiveofourown.org"
And I press "Search" within "form.invitation.simple.search"
And I follow "Copy and use"
Then I should see "You are already logged in!"
# user uses email invite
Given I am a visitor
# "You've" removed from test due to escaping on apostrophes
Then the email should contain "been invited to join the Archive of Our Own"
And the email should contain "fanart"
And the email should contain "podfic"
And the email should contain "If you do not receive this email after 48 hours"
And the email should contain "With an account, you can post fanworks"
When I follow "follow this link to sign up" in the email
And I fill in the sign up form with valid data
And I fill in the following:
| user_registration_login | newuser |
| user_registration_email | test@archiveofourown.org |
| user_registration_password | password1 |
| user_registration_password_confirmation | password1 |
And all emails have been delivered
When I press "Create Account"
Then I should see "Almost Done!"
Then 1 email should be delivered
And the email should contain "Welcome to the Archive of Our Own,"
And the email should contain "newuser"
And the email should contain "activate your account"
And the email should not contain "translation missing"
# user activates account
When all emails have been delivered
And I click the first link in the email
Then I should be on the login page
And I should see "Account activation complete! Please log in."
When I am logged in as "newuser" with password "password1"
Then I should see "Successfully logged in."
Scenario: You can't request an invitation with an email address that is
already attached to an account
Given account creation requires an invitation
And the invitation queue is enabled
And the following activated users exist
| login | password | email |
| fred | yabadabadoo | fred@bedrock.com |
When I am on the homepage
And I follow "Get an Invitation"
And I fill in "invite_request_email" with "fred@bedrock.com"
And I press "Add me to the list"
Then I should see "Email is already being used by an account holder."
Scenario: Users can resend their invitation after enough time has passed
Given account creation is enabled
And the invitation queue is enabled
And account creation requires an invitation
And the invite_from_queue_at is yesterday
And an invitation request for "invitee@example.org"
When the scheduled check_invite_queue job is run
Then 1 email should be delivered to invitee@example.org
When I check how long "invitee@example.org" will have to wait in the invite request queue
Then I should see "Invitation Request Status"
And I should see "If you can't find it, please check your email spam folder as your spam filters may have placed it there."
And I should not see "Because your invitation was sent more than 24 hours ago, you can have your invitation resent."
And I should not see "Resend Invitation"
When all emails have been delivered
And it is currently 25 hours from now
And I check how long "invitee@example.org" will have to wait in the invite request queue
Then I should see "Invitation Request Status"
And I should see "If you can't find it, please check your email spam folder as your spam filters may have placed it there."
And I should see "Because your invitation was sent more than 24 hours ago, you can have your invitation resent."
And I should see "Resend Invitation"
When I press "Resend Invitation"
Then 1 email should be delivered to invitee@example.org