storj/docs/testplan/automatic-account-freeze-unfreeze.md
nadimhq 9190a549ad
docs/testplan: Testplan for Automatic Account Freeze-Unfreeze (#5336)
* docs/testplan: Testplan for Automatic Account Freeze-Unfreeze

This testplan is going to cover the new account Freeze/Unfreeze. It will go over the automatic-account-freeze design doc found under docs/blueprints.

* Update automatic-account-freeze-unfreeze.md

Co-authored-by: Antonio Franco (He/Him) <antonio@storj.io>
2022-12-16 15:10:57 +01:00

21 KiB

Automatic Account Freeze Unfreeze Testplan

 

Background

This testplan is going to cover the new account Freeze/Unfreeze. It will go over the design doc seen here - Freeze/Unfreeze

 

Test Scenario Test Case Description Comments
Notification Account Frozen Notification 1 While the users account is restricted there should be a banner on top of UI notifying the user that their account is frozen because of payment problems
Insert Funding Notification Users should be given a notification during the period before their account becomes frozen because of outstanding invoices the notification should warn them that their account may be frozen until there is a source of funds
Insert Funding Notification- Storj Token Balance If a user has no credit card on their account file but has a Storj token balance, then users should be given a notification during the period before their account becomes frozen when they don't have enough in their Storj Token Balance the notification should warn them that their account may be frozen until there is enough funs in their token balance to cover their bill
Account Frozen Notification 2 If a user tries uploading, downloading, or doing any action tasks- bucket creation, share they should be presented with a notification of their account being frozen and steps to fix this
DB Chore for Outstanding Invoice 1 There should be a chore that iterates over all paid-tier users and checks for invoices that have not been paid over a specified period of time what is the set period of time?
Chore for Outstanding Invoice 2- Account Frozen Message If said invoices have not been paid over a specified period of time then the account tied to those invoices are frozen and an message notifying them of this is sent through email
Chore for Outstanding Invoice 3- Reminder Message If said invoices have not been paid over a specified period of time but less than the time for it to be considered an outstanding invoice, then the account tied to those invoices should not be frozen however a message notifying them of this being imminent is sent through email
Custom Limits The new freeze table should have a column for custom limits, that should return the correct custom limits for accounts that are given said custom limits eventually this would be phased out during phase 2, since by that time we should have an updated and worked upon account freezing procedure that shouldn't zero usage limits but still apply account freezing
Event Column DB This DB column should contain event ID, user ID and event type columns, there are two event types for each user and a user can only be under 1 event of each type. -->If the user has a warning event type then they should recieve the Insert Funding Notification and one warning mail ONCE since this event doesn't repeat the warning email--> If this isn't fixed, by user inserting funding into their account, then they get a freeze event where there account is barred from uploading or downloading data from the Storj Network. If this event doesn't exist for the user then they should be unfrozen.
Account Freeze Limit Download While account is frozen, user should not be able to download objects
Limit Upload While account is frozen, user should not be able to upload objects
Don't Limit ls While account is frozen, user should be able to list objects in bucket If we show them the files they could download after fixing the payment problem they might be more willing to pay
Don't Limit Delete While account is frozen, user should be able to delete objects in bucket If we allow the customer to delete all files it will reduce the amount of work we have to perform.
Limit Create Bucket While account is frozen, user should not be able to create buckets
Limit Share User should not be able to share buckets, objects etc while account is frozen
Limit Projects User should not be able to interact with their said projects while account is frozen
Limit Project Member Usage Project members should not be able to interact with project owner buckets, objects etc whose account is frozen
Button on Account Freeze Notification User should be able to click a link on the notification (which leads to button the billing page) which when pressed attempts to collect payment on a frozen users outstanding invoice would be nice to have a link that redirects to the part of the billing page containing this new button for quality of life
Successful Outstanding Invoice Clear If user clicks the link or button mentioned previously and there are funds then the account is unfrozen and user should be able to perform tasks download, upload etc
Unsuccessful Outstanding Invoice Clear If user clicks the link or button mentioned previously and there are no funds then the account is still frozen and a new error message should pop up notifying user of insufficient funding
Account Unfreeze Restore Custom Limit If a user had a set custom limit before they were frozen, then when they are unfrozen they should be given back said custom limits f.e project, storage limit, bandwidth limit etc
Unpaid User Over-limit Segment Fees Currently free tier users are able to use more than whats covered by the free tier coupon (1.65$) by uploading lots of small files, however this would require 10,000 or more segments to even reach over 150gb storage and egress, currently if free tier account has outstanding invoices for over a month then their limits will be placed to 0 account freeze and unfreeze only applies to PAID tier users for now so this is OUT OF SCOPE