Feature: As a user I want to communicate with other users so that we may organize and have fun.
Scenario: The user wishes to communicate to all other connected users.
- Given the user is staff,
- When the user attempts to broadcast a message to all connected users,
- Then all connected users receive the message.
- Given the user is not staff,
- When the user attempts to broadcast a message to all connected users,
- Then the user receives a generic 'command not found' error message.
- And the request fails.
Scenario: The user wants to communicate to all other connected users within the user's location.
- Given the sender is
muted
,
- When the sender attempts to communicate the sender's location,
- Then the sender is reminded that they are
muted
and may not do so.
- And the action fails.
- Given the sender is
deaf
,
- When the sender attempts to communicate to the sender's location,
- Then the sender is reminded that they are
deaf
, and will not hear any response.
- And all connected users within the sender's location who are not set
deaf
will receive the communication.
- And connected users within the sender's location who are set
deaf
will not receive the communication.
- And connected users not within the sender's location will not receive the communication.
- Given the sender is
dark
,
- When the sender attempts to communicate to a location,
- Then all connected users within the location who are
staff
and not deaf
will receive the communication with identifying its source.
- And all connected users within the location who are not
staff
and not deaf
will receive the communication without identifying its source.
- And connected users within the sender's location who are set
deaf
will not receive the communication.
- And connected users not within the sender's location will not receive the communication.
- Given the sender is neither
mute
nor deaf
,
- When the sender attempts to communicate to a location,
- Then the sender is not reminded that they are
deaf
.
- And all connected users within the location who are not
deaf
will receive the communication.
- And connected users within the sender's location who are set
deaf
will not receive the communication.
- And connected users not within the sender's location will not receive the communication.
Scenario: The user wants to privately communicate to a user-specified subset of connected users within the user's location # whisper
- Given the sender is
mute
,
- When the user attempts to communicate to a user-specified subset of connected users within the user's location,
- Then the sender is reminded that they are
muted
and may not do so.
- And the action fails.
- Given the sender is
deaf
,
- When the user attempts to communicate to a user-specified subset of connected users within the user's location,
- Then the sender is reminded that they are
deaf
, and will not hear any response.
- And user-specified subset of connected users within the user's location who are not set
deaf
will receive the communication.
- **Given the recipient does not exist,
- When the user attempts to communicate to a user-specified subset of connected users within the user's location,
- Given the recipient is not present in the sender's location
- Given the recipient not connected
- Given the recipient
deaf
- Given the recipient has
blocked
the sender
- Given the sender is not prohibited from sending a message,
- And the recipient is present in the location of the sender, connected, and able to receive a message,
Does the user want to obscure the list (bcc) or is the list public to all on it?
Scenario: The user wants to privately communicate to a user-specified subset of connected users regardless of location. # tells
- Given the sender mute,
- Given the sender is deaf,
- Given the recipient does not exist,
- Given the recipient is not connected,
- Given the recipient is
deaf
,
- Given the recipient has
blocked
the sender,
- Given the sender is not prohibited from sending a message,
- And the recipient is connected and able to receive a message,
Does the user want to obscure the list (bcc) or is the list public to all on it?
Scenario: The user wants to privately communicate to a system-specified subset of connected users. # chat channels
- Given the subset of connected users does not exist,
- Given the sender is not a member of the subset of connected users,
- Given the sender is a member of the subset of connected users,
- And is restricted from sending to that subset,
- Given the sender is
mute
,
- Given the sender is
deaf
,
- Given the subset of connected users exists,
- And the sender is a member of the subset of connected users with send-access privileges and is not otherwise restricted from communication,
- When
- Then send the message to all members of the subset of connected users who have not blocked the sender and are not
deaf
. # Do I need to check for deafness/blocked status in this scenario, or is this sufficient to indicate that must happen?
Do join, leave, and mute scenarios go here?
Scenario: The user wants to communicate in a longer, persistent form to a user-specified subset of users. # Mail
- is the sender restricted # how does this differ from mute?
- does the recipient exist
- has the recipient blocked the sender # cannot block staff
- is the message missing a vital attribute [subject, content]
- is the message of malicious size # maximum file size?
- send message
- store message
- sender is notified their message has been sent
- if online, recipient is notified they have received a message
- if offline, recipient will be notified upon next connection that they have a message
** Do read scenarios go here? **
Scenario: The user wants to communicate in a longer, persistent form to a system-specified subset of users. # Mail List
- does subset exist
- is user a member of subset (with sending privileges)
- is the sender restricted # how does this differ from mute?
- does the recipient exist
- has the recipient blocked the sender # cannot block staff
- is the message missing a vital attribute [subject, content]
- is the message of malicious size # maximum file size?
- send message
- store message
- sender is notified their message has been sent
- if online, recipient is notified they have received a message
- if offline, recipient will be notified they have a message upon connection
** Do read scenarios go here? **
** Do join and leave scenarios go here?**
Scenario: The user wants to communicate in a longer, persistent form to a system-specified subset of users. # BB
- does subset exist
- is user a member of subset (with writing privileges)
- is the sender restricted # how does this differ from mute?
- is the message missing a vital attribute [subject, content]
- is the message of malicious size # maximum file size?
- post/store message
- online members of subset are notified there is a new message
- offline members of subset will be notified there is a new message upon connection # if they have not muted notifications?
Scenario: User wants to mute communications. # all channels/deaf
Scenario: User wants to reinitiate communications.
Scenario: User wants to mute a subset of users. # block an individual, all tells, one chat, all chat, notifications for mail or bb
Scenario: User wants to unmute a subset of users.