Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement vBAT notices and sunset #27882

Closed
Miyayes opened this issue Jan 18, 2023 · 4 comments · Fixed by brave/brave-core#16710
Closed

Implement vBAT notices and sunset #27882

Miyayes opened this issue Jan 18, 2023 · 4 comments · Fixed by brave/brave-core#16710

Comments

@Miyayes
Copy link
Collaborator

Miyayes commented Jan 18, 2023

Description

Implement vBAT notices and sunsetting related to https://brave.com/rewards-changes.

@LaurenWags
Copy link
Member

@brave/qa-team we should verify this one on all platforms, run full checks on Windows and macOS with reduced testing (TBD) on Linux.

@LaurenWags
Copy link
Member

LaurenWags commented Feb 14, 2023

Verified with

Brave | 1.49.100 Chromium: 110.0.5481.100 (Official Build) beta (x86_64)
-- | --
Revision | 4be7a36f7cb943af6118e449bbab494b43dcaddd-refs/branch-heads/5481_77@{#14}
OS | macOS Version 12.6.3 (Build 21G419)
Case 1: vbatDeadline not specified - PASSED

1.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as US but do not connect to custodian at this time)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
2 1 3

1.2. Upgrade the profile to 1.49.x
1.3. You are now in the grandfathered-unverified state. Make it so that the /parameters endpoint (via Ben Huson or a proxy) does not have a vbatDeadline field/value at all
1.4. Make sure that the browser has picked up this new /parameters value.

1.49.x rewards settings 1.49.x BR panel 1.49.x NTP widget
1 2 3

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.313666,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}}

1.5. Connect to a custodian. You are now in the connected state.

Example Example
Screen Shot 2023-02-17 at 12 16 19 PM Screen Shot 2023-02-17 at 12 16 26 PM

1.6. Make sure /parameters endpoint is still not showing any vbatDeadline value
1.7. Restart browser just in case.
1.8. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
Screen Shot 2023-02-17 at 12 17 52 PM Screen Shot 2023-02-17 at 12 18 01 PM Screen Shot 2023-02-17 at 12 18 09 PM

1.9. Reset Brave Rewards. You should now be in the new non-connected state.

Example Example Example Example Example Example
Screen Shot 2023-02-17 at 12 19 20 PM Screen Shot 2023-02-17 at 12 19 28 PM Screen Shot 2023-02-17 at 12 19 33 PM Screen Shot 2023-02-17 at 12 19 40 PM Screen Shot 2023-02-17 at 12 19 46 PM Screen Shot 2023-02-17 at 12 20 07 PM

1.10. Restart browser just in case.
1.11. Make sure /parameters endpoint is still not showing any vbatDeadline value.

Logs

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[73980:259:0217/122135.566087:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.313666,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}}

1.12. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
Screen Shot 2023-02-17 at 12 25 27 PM Screen Shot 2023-02-17 at 12 25 36 PM Screen Shot 2023-02-17 at 12 25 43 PM

1.13. Delete your profile completely (fresh profile) and create one in 1.49.x. Enable Brave Rewards.

Example Example Example
Screen Shot 2023-02-17 at 12 29 11 PM Screen Shot 2023-02-17 at 12 29 25 PM Screen Shot 2023-02-17 at 12 29 39 PM

1.14. Make sure /parameters endpoint is still not showing any vbatDeadline value.

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.313666,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]}}

1.15. You should be in the new non-connected state.
1.16. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
Screen Shot 2023-02-17 at 12 30 46 PM Screen Shot 2023-02-17 at 12 30 54 PM Screen Shot 2023-02-17 at 12 31 00 PM
Case 2: vbatDeadline is in the past and vbatExpired = false - PASSED

2.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as US, but don't connect to custodian)
2.2. Accept accept UGP grant (so that you can check the vBAT expiry notices on the NTP Widget)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-17 at 1 55 55 PM Screen Shot 2023-02-17 at 1 56 03 PM Screen Shot 2023-02-17 at 1 56 15 PM

2.3. Upgrade the profile to 1.49.x
2.4. You are now in the grandfathered-unverified state. Make it so that the /parameters endpoint (via Ben Huson or a proxy) has a vbatDeadline field/value set in the past (such as January 2, 2023).
2.5. Ensure this is the result you’re getting from /parameters.

Logs

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[77177:259:0217/135710.044211:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-10T00:00:00Z","vbatExpired":false}

2.6. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

1.49.x rewards settings 1.49.x BR panel 1.49.x NTP widget
Screen Shot 2023-02-17 at 1 58 35 PM Screen Shot 2023-02-17 at 1 58 44 PM Screen Shot 2023-02-17 at 1 58 51 PM

2.7. Connect to a custodian. You are now in the connected state.

Example Example
Screen Shot 2023-02-17 at 2 15 36 PM Screen Shot 2023-02-17 at 2 15 45 PM

2.8. Make sure /parameters endpoint vbatDeadline field/value is still set in the past (such as January 2, 2023).

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[77476:259:0217/141319.736970:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303564,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-10T00:00:00Z","vbatExpired":false}

2.9. Restart browser just in case.
2.10. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
Screen Shot 2023-02-17 at 2 17 38 PM Screen Shot 2023-02-17 at 2 17 46 PM Screen Shot 2023-02-17 at 2 17 56 PM

2.11. Reset Brave Rewards. You should now be in the new non-connected state.

Example Example Example Example Example Example
Screen Shot 2023-02-17 at 2 19 09 PM Screen Shot 2023-02-17 at 2 19 17 PM Screen Shot 2023-02-17 at 2 19 23 PM Screen Shot 2023-02-17 at 2 19 30 PM Screen Shot 2023-02-17 at 2 19 36 PM Screen Shot 2023-02-17 at 2 19 51 PM

2.12. Restart browser just in case.
2.13. Make sure /parameters endpoint is still showing vbatDeadline field/value set in the past (such as January 2, 2023).

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303442,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-10T00:00:00Z","vbatExpired":false}

2.14 Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
Screen Shot 2023-02-17 at 2 21 33 PM Screen Shot 2023-02-17 at 2 21 43 PM Screen Shot 2023-02-17 at 2 21 50 PM

2.15. Delete your profile completely (fresh profile) and create one in 1.49.x. Enable Brave Rewards.

Example Example Example
Screen Shot 2023-02-17 at 2 23 22 PM Screen Shot 2023-02-17 at 2 23 35 PM Screen Shot 2023-02-17 at 2 23 43 PM

2.16. Make sure /parameters endpoint’s vbatDeadline field/value is still set in the past (such as January 2, 2023). .

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET

2.17. You should be in the new non-connected state
2.18. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
Screen Shot 2023-02-17 at 2 24 22 PM Screen Shot 2023-02-17 at 2 24 33 PM Screen Shot 2023-02-17 at 2 24 38 PM
Case 3: vbatDeadline is in the future (custodian available → connected → reset into non-connected) - PASSED

3.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as US but do not connect to custodian)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
2 1 3

3.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
3.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
3.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[78194:259:0217/144124.362075:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-28T07:00:00Z","vbatExpired":false}

3.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices. They SHOULD appear
(compare with Figma, row “Countdown to feature removal notification”). Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

  • Confirmed that the content of “Countdown to feature removal notification” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
  • Confirmed that click on “Connect account” opens up the connect account modal popup
brave://rewards NTP Rewards widget Rewards panel
Screen Shot 2023-02-17 at 2 42 18 PM Screen Shot 2023-02-17 at 2 42 26 PM Screen Shot 2023-02-17 at 2 42 34 PM

3.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-02-28T07:00:00Z"
  • Ensured that the time is translated into local device time (EST) February 28, 2023 at 2 AM (EST = UTC - 5)
Screen Shot 2023-02-17 at 2 44 41 PM

3.7. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
Screen Shot 2023-02-17 at 2 51 05 PM Screen Shot 2023-02-17 at 2 51 13 PM

3.8. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
Screen Shot 2023-02-17 at 2 51 27 PM Screen Shot 2023-02-17 at 2 51 35 PM

3.9. Connect a custodian.
3.10. Once connected, look around for vBAT expiry notices on NTP, brave://rewards, and Rewards dropdown panel. Now that you’re in the connected state, NO vBAT expiry notices should appear anywhere.

Example Example Example
Screen Shot 2023-02-17 at 2 57 56 PM Screen Shot 2023-02-17 at 2 58 04 PM Screen Shot 2023-02-17 at 2 58 12 PM

3.11. Reset Brave Rewards and enable Brave Rewards. You’re now in the non-connected state. Check NTP, brave://rewards and Rewards dropdown panel. NO vBAT expiry notices should appear anywhere.

Example Example Example Example Example Example Example Example Example
Screen Shot 2023-02-17 at 2 59 36 PM Screen Shot 2023-02-17 at 2 59 41 PM Screen Shot 2023-02-17 at 2 59 48 PM Screen Shot 2023-02-17 at 2 59 55 PM Screen Shot 2023-02-17 at 3 00 02 PM Screen Shot 2023-02-17 at 3 00 17 PM Screen Shot 2023-02-17 at 3 00 33 PM Screen Shot 2023-02-17 at 3 00 38 PM Screen Shot 2023-02-17 at 3 00 44 PM
Case 4: Japan version of vbatDeadline is in the future (custodian available → connected → reset into non-connected) - PASSED

Pre-req: Set my system to use JST for following test:

Screen Shot 2023-02-18 at 5 06 24 AM

4.1. In older version of Brave, create a Rewards profile in staging and declare JP region

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-18 at 5 08 06 AM Screen Shot 2023-02-18 at 5 08 18 AM Screen Shot 2023-02-18 at 5 08 27 AM

4.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
4.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
4.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-28T17:00:00Z","vbatExpired":false}

4.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices. They SHOULD appear
(compare with Figma, row “Countdown to feature removal notification”). Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

  • Confirmed that the content of “Countdown to feature removal notification” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
  • Confirmed that click on “Connect account” opens up the connect account modal popup
brave://rewards NTP Rewards widget Rewards panel
Screen Shot 2023-02-18 at 5 16 12 AM Screen Shot 2023-02-18 at 5 17 09 AM Screen Shot 2023-02-18 at 5 17 24 AM

4.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-02-28T17:00:00Z"
  • Ensured that the time is translated into local device time (JST) March 1, 2023 at 2 AM (JST = UTC + 9)
Screen Shot 2023-02-18 at 5 14 11 AM

4.7. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
Screen Shot 2023-02-18 at 5 21 40 AM Screen Shot 2023-02-18 at 5 21 46 AM

4.8. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
Screen Shot 2023-02-18 at 5 22 02 AM Screen Shot 2023-02-18 at 5 22 10 AM

4.9. Connect a custodian.
4.10. Once connected, look around for vBAT expiry notices on NTP, brave://rewards, and Rewards dropdown panel. Now that you’re in the connected state, NO vBAT expiry notices should appear anywhere.

Example Example Example
Screen Shot 2023-02-18 at 5 26 33 AM Screen Shot 2023-02-18 at 5 26 42 AM Screen Shot 2023-02-18 at 5 26 55 AM

4.11. Reset Brave Rewards and enable Brave Rewards. You’re now in the non-connected state. Check NTP, brave://rewards and Rewards dropdown panel. NO vBAT expiry notices should appear anywhere.

Example Example Example Example Example Example Example Example Example
Screen Shot 2023-02-18 at 5 28 43 AM Screen Shot 2023-02-18 at 5 28 49 AM Screen Shot 2023-02-18 at 5 28 55 AM Screen Shot 2023-02-18 at 5 29 03 AM Screen Shot 2023-02-18 at 5 29 09 AM Screen Shot 2023-02-18 at 5 29 23 AM Screen Shot 2023-02-18 at 5 29 32 AM Screen Shot 2023-02-18 at 5 29 39 AM Screen Shot 2023-02-18 at 5 29 46 AM
Case 5: vbatDeadline is in the future (custodian available → not available → available → connected → reset into non-connected) - PASSED

5.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in the US.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-20 at 8 55 10 AM Screen Shot 2023-02-20 at 8 55 19 AM Screen Shot 2023-02-20 at 8 55 25 AM

5.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
5.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
5.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[84127:259:0220/085800.441280:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

5.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices.

brave://rewards NTP Rewards widget Rewards panel
Screen Shot 2023-02-20 at 8 59 03 AM Screen Shot 2023-02-20 at 8 59 11 AM Screen Shot 2023-02-20 at 8 59 20 AM

5.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-03-10T00:00:00Z"
  • Ensured that the time is translated into local device time (EST) March 9, 2023 at 7 PM (EST = UTC - 5)

5.7. Now, have Ben Huson or proxy the /parameters endpoint so that there are NO available custodians for your region (in this example, US).

5.8. Make sure these new values are being picked up by the browser (e.g., try a browser restart).

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[84255:259:0220/090331.157758:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

5.9. Check for vBAT notices on NTP, brave://rewards, and Rewards dropdown. However, they should now be the variant that says “no available custodian” (matches Figma row “Countdown to feature removal notification + No custodians available”). Make sure the “Learn more” buttons work in all of them (open up relevant pages).

  • Confirmed that the content of “Countdown to feature removal notification+ No custodians available” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
Example Example Example
Screen Shot 2023-02-20 at 9 35 02 AM Screen Shot 2023-02-20 at 9 36 14 AM Screen Shot 2023-02-20 at 9 36 38 AM

5.10. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
Screen Shot 2023-02-20 at 9 38 12 AM Screen Shot 2023-02-20 at 9 38 18 AM

5.11. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
Screen Shot 2023-02-20 at 9 38 57 AM Screen Shot 2023-02-20 at 9 39 05 AM

5.12. Now, update /parameters endpoint so that there is at least 1 available custodian for US, then confirm new /parameters values are being picked up by the browser.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[84733:259:0220/094248.653874:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

5.13. Check to see if vBAT notices have returned to looking like Figma’s row “Countdown to feature removal notification”, which allows a user to connect custodian. Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

Example Example Example
Screen Shot 2023-02-20 at 9 43 37 AM Screen Shot 2023-02-20 at 9 44 04 AM Screen Shot 2023-02-20 at 9 44 18 AM

5.14. Connect a custodian.
5.15. Look around and make sure no more vBAT notices of any kind appear in NTP, Rewards dropdown panel, or brave://rewards.

Example Example Example
Screen Shot 2023-02-20 at 9 45 23 AM Screen Shot 2023-02-20 at 9 45 31 AM Screen Shot 2023-02-20 at 9 45 50 AM

5.16. Reset Brave Rewards then re-enable Rewards. You should now be in the non-connected state.

Example Example Example Example Example Example
Screen Shot 2023-02-20 at 9 47 16 AM Screen Shot 2023-02-20 at 9 47 22 AM Screen Shot 2023-02-20 at 9 47 27 AM Screen Shot 2023-02-20 at 9 47 34 AM Screen Shot 2023-02-20 at 9 47 40 AM Screen Shot 2023-02-20 at 9 47 54 AM

5.17. No vBAT expiry notices should appear anywhere: none on NTP, brave://rewards or dropdown panel.

Example Example Example
Screen Shot 2023-02-20 at 9 48 47 AM Screen Shot 2023-02-20 at 9 48 54 AM Screen Shot 2023-02-20 at 9 49 01 AM
Case 6: Custodian available → forcible transition to non-connected - PASSED

6.1 Create a profile on 1.47.x or earlier and enable Rewards against staging in the US.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-20 at 8 55 10 AM Screen Shot 2023-02-20 at 8 55 19 AM Screen Shot 2023-02-20 at 8 55 25 AM

6.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
6.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
6.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[85109:259:0220/100236.176253:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

6.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices (available custodian case).

Example Example Example
Screen Shot 2023-02-20 at 10 03 12 AM Screen Shot 2023-02-20 at 10 03 21 AM Screen Shot 2023-02-20 at 10 03 27 AM

6.6. Now, change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true.
6.7. Make sure /parameters is picking up the new values.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[85198:259:0220/100507.120737:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-18T00:00:00Z","vbatExpired":true}

6.8. Check Brave Rewards UI: user should now see the new non-connected state and no longer see the grandfathered-unverified state. No vBAT notices should appear anywhere. Do a general scan to make sure NTP widget, brave://rewards and Rewards dropdown panel match the new non-connected state.

Example Example Example
Screen Shot 2023-02-20 at 10 06 04 AM Screen Shot 2023-02-20 at 10 06 15 AM Screen Shot 2023-02-20 at 10 06 21 AM
Case 7: Japan version of custodian available → forcible transition to non-connected - PASSED

Pre-req: Set timezone to JST:

Screen Shot 2023-02-21 at 12 15 21 AM

7.1 Create a profile on 1.47.x or earlier and enable Rewards against staging and select the JP region

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-20 at 10 11 21 AM Screen Shot 2023-02-20 at 10 11 31 AM Screen Shot 2023-02-20 at 10 11 37 AM

7.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
7.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
7.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[85547:259:0220/101306.145778:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

7.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices (available custodian case).

Example Example Example
Screen Shot 2023-02-21 at 12 14 56 AM Screen Shot 2023-02-21 at 12 15 07 AM Screen Shot 2023-02-21 at 12 15 14 AM

7.6. Now, change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true.
7.7. Make sure /parameters is picking up the new values.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-18T00:00:00Z","vbatExpired":true}

7.8. Check Brave Rewards UI: user should now see the new non-connected state and no longer see the grandfathered-unverified state. No vBAT notices should appear anywhere. Do a general scan to make sure NTP widget, brave://rewards and Rewards dropdown panel match the new non-connected state.

Example Example Example
Screen Shot 2023-02-21 at 12 17 43 AM Screen Shot 2023-02-21 at 12 17 50 AM Screen Shot 2023-02-21 at 12 17 55 AM
Case 8: No custodian available → forcible transition to non-connected - PASSED

8.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in a region that has no supported custodians (like Antarctica).

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-20 at 11 40 36 AM Screen Shot 2023-02-20 at 11 40 43 AM Screen Shot 2023-02-20 at 11 40 53 AM

8.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
8.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
8.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[86777:259:0220/114229.825047:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

8.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices (no available custodian case).

Example Example Example
Screen Shot 2023-02-20 at 11 43 12 AM Screen Shot 2023-02-20 at 11 43 20 AM Screen Shot 2023-02-20 at 11 43 27 AM

8.6. Now, change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true.
8.7. Make sure /parameters is picking up the new values.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[86859:259:0220/114423.911130:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-18T00:00:00Z","vbatExpired":true}

8.8. Check Brave Rewards UI: user should now see the new non-connected state and no longer see the grandfathered-unverified state. No vBAT notices should appear anywhere. Do a general scan to make sure NTP widget, brave://rewards and Rewards dropdown panel match the new non-connected state.

Example Example Example
Screen Shot 2023-02-20 at 11 45 04 AM Screen Shot 2023-02-20 at 11 45 12 AM Screen Shot 2023-02-20 at 11 45 19 AM
Case 9: vBAT flag (custodian available → flag → unflag → no custodian available → flag) - PASSED

9.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in the US.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
Screen Shot 2023-02-20 at 12 11 32 PM Screen Shot 2023-02-20 at 12 11 43 PM Screen Shot 2023-02-20 at 12 11 52 PM

9.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
9.3. Update to 1.49.x. You are now in the grandfathered-unverified state.
9.4. You should see vBAT expiry notices on NTP, brave://rewards and Rewards dropdown panel.

Example Example Example
Screen Shot 2023-02-20 at 12 15 20 PM Screen Shot 2023-02-20 at 12 15 28 PM Screen Shot 2023-02-20 at 12 15 34 PM

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[87374:259:0220/121432.845404:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

9.5. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “disabled”.
9.6. Relaunch Brave.

Screen Shot 2023-02-20 at 12 16 59 PM

9.7. Look around and make sure there are no vBAT expiry notices visible anymore.

Example Example Example
Screen Shot 2023-02-20 at 12 17 18 PM Screen Shot 2023-02-20 at 12 17 26 PM Screen Shot 2023-02-20 at 12 17 33 PM

9.8. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “enabled”. Relaunch browser.

Screen Shot 2023-02-20 at 12 18 46 PM

9.9. Make sure vBAT expiry notices appear again.

Example Example Example
Screen Shot 2023-02-20 at 12 18 56 PM Screen Shot 2023-02-20 at 12 19 07 PM Screen Shot 2023-02-20 at 12 19 14 PM

9.10. Change /parameters so that there are no available custodians for your region (in this example, US)

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[87631:259:0220/122152.474988:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

9.11. vBAT notices should now show the Figma “Countdown to feature removal notification + No custodians available” case.

Example Example Example
Screen Shot 2023-02-20 at 12 22 37 PM Screen Shot 2023-02-20 at 12 22 45 PM Screen Shot 2023-02-20 at 12 22 51 PM

9.12. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “disabled”. Relaunch browser.

Screen Shot 2023-02-20 at 12 23 40 PM

9.13. Make sure all vBAT notices have disappeared.

Example Example Example
Screen Shot 2023-02-20 at 12 23 59 PM Screen Shot 2023-02-20 at 12 24 04 PM Screen Shot 2023-02-20 at 12 24 10 PM

9.14. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “enabled”. Relaunch browser.

Screen Shot 2023-02-20 at 12 25 39 PM

9.15. Make sure all vBAT notices have reappeared.

Example Example Example
Screen Shot 2023-02-20 at 12 25 54 PM Screen Shot 2023-02-20 at 12 26 05 PM Screen Shot 2023-02-20 at 12 26 12 PM

9.16. Reset Brave Rewards so that you’re in the non-connected state.

Example Example Example Example Example Example Example
Screen Shot 2023-02-20 at 12 27 34 PM Screen Shot 2023-02-20 at 12 27 46 PM Screen Shot 2023-02-20 at 12 27 51 PM Screen Shot 2023-02-20 at 12 27 57 PM Screen Shot 2023-02-20 at 12 28 05 PM Screen Shot 2023-02-20 at 12 28 21 PM Screen Shot 2023-02-20 at 12 28 28 PM
Case 10: Regression testing for connected state - PASSED

10.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in the US
10.2 Connect to custodian, close browser

Example Example Example
Screen Shot 2023-02-20 at 12 40 06 PM Screen Shot 2023-02-20 at 12 40 13 PM Screen Shot 2023-02-20 at 12 40 18 PM

10.3 Change /parameters to vbatDeadline to sometime in the future, and vbatExpired: false
10.4 Upgrade to 1.49.x, confirm still connected to custodian as expected

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[88298:259:0220/124146.917868:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

10.5 Confirm no vBAT expiration notices, close browser

Example Example Example
Screen Shot 2023-02-20 at 12 42 42 PM Screen Shot 2023-02-20 at 12 42 48 PM Screen Shot 2023-02-20 at 12 42 54 PM

10.6 Change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true
10.7 Relaunch and confirm no vBAT expiration notices

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[88381:259:0220/124347.447313:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-18T00:00:00Z","vbatExpired":true}
Example Example Example
Screen Shot 2023-02-20 at 12 44 10 PM Screen Shot 2023-02-20 at 12 44 28 PM Screen Shot 2023-02-20 at 12 44 34 PM
Case 11: Regression testing for new non-connected state - PASSED

10.1. Create a profile on 1.48.x and enable Rewards against staging in the US

Example Example Example
Screen Shot 2023-02-20 at 12 50 18 PM Screen Shot 2023-02-20 at 12 51 18 PM Screen Shot 2023-02-20 at 12 51 25 PM

10.2 Do not connect to custodian, close browser
10.3 Change /parameters to vbatDeadline to sometime in the future, and vbatExpired: false
10.4 Upgrade to 1.49.x

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[88781:259:0220/125413.074345:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T00:00:00Z","vbatExpired":false}

10.5 Confirm no vBAT expiration notices, close browser

Example Example Example
Screen Shot 2023-02-20 at 12 54 47 PM Screen Shot 2023-02-20 at 12 54 54 PM Screen Shot 2023-02-20 at 12 55 00 PM

10.6 Change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true
10.7 Relaunch and confirm no vBAT expiration notices

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
[88850:259:0220/125538.047007:VERBOSE6:logging_util.cc(134)] 
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["US","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-18T00:00:00Z","vbatExpired":true}
Example Example Example
Screen Shot 2023-02-20 at 12 56 11 PM Screen Shot 2023-02-20 at 12 56 17 PM Screen Shot 2023-02-20 at 12 56 23 PM

@GeetaSarvadnya
Copy link

GeetaSarvadnya commented Feb 15, 2023

Verification PASSED on

Brave | 1.49.97 Chromium: 110.0.5481.77 (Official Build) beta (64-bit)
-- | --
Revision | 65ed616c6e8ee3fe0ad64fe83796c020644d42af-refs/branch-heads/5481@{#839}
OS | Windows 10 Version 21H2 (Build 19044.2486)

Verified the scenarios from https://docs.google.com/document/d/1YVa6Wx4kMd90Q7mfx29iW--xa4tPNl7YXc486CkYQAI/edit#heading=h.t2vdk6dnw3tr

Case 1: vbatDeadline not specified_PASSED

1.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as UK)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

1.2. Upgrade the profile to 1.49.x
1.3. You are now in the grandfathered-unverified state. Make it so that the /parameters endpoint (via Ben Huson or a proxy) does not have a vbatDeadline field/value at all
1.4. Make sure that the browser has picked up this new /parameters value.

1.49.x rewards settings 1.49.x BR panel 1.49.x NTP widget
image image image

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatExpired":false}
[12492:22708:0215/144116.323:VERBOSE9:logging_util.cc(135)]

1.5. Connect to a custodian. You are now in the connected state.

Example Example
image image

1.6. Make sure /parameters endpoint is still not showing any vbatDeadline value
1.7. Restart browser just in case.
1.8. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
image image image

1.9. Reset Brave Rewards. You should now be in the new non-connected state.

Example Example Example Example Example Example
image image image image image image

1.10. Restart browser just in case.
1.11. Make sure /parameters endpoint is still not showing any vbatDeadline value.

Logs

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatExpired":false}
[17648:22980:0215/151053.641:VERBOSE9:logging_util.cc(135)]

1.12. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
image image image

1.13. Delete your profile completely (fresh profile) and create one in 1.49.x. Enable Brave Rewards.

Example Example Example
image image image

1.14. Make sure /parameters endpoint is still not showing any vbatDeadline value.

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatExpired":false}
[19328:19884:0215/151657.868:VERBOSE9:logging_util.cc(135)]

1.15. You should be in the new non-connected state.
1.16. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
image image image
Case 2: vbatDeadline is in the past_PASSED

2.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as UK)
2.2. Accept accept UGP grant (so that you can check the vBAT expiry notices on the NTP Widget)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

2.3. Upgrade the profile to 1.49.x
2.4. You are now in the grandfathered-unverified state. Make it so that the /parameters endpoint (via Ben Huson or a proxy) has a vbatDeadline field/value set in the past (such as January 2, 2023).
2.5. Ensure this is the result you’re getting from /parameters.

Logs

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-02T00:00:00Z","vbatExpired":false}
[18732:16116:0215/153723.664:VERBOSE9:logging_util.cc(135)]

2.6. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

1.49.x rewards settings 1.49.x BR panel 1.49.x NTP widget
image image image

2.7. Connect to a custodian. You are now in the connected state.

Example Example
image image
    1. Make sure /parameters endpoint vbatDeadline field/value is still set in the past (such as January 2, 2023).
[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-02T00:00:00Z","vbatExpired":false}
[18592:18988:0215/154626.562:VERBOSE1:issuers.cc(60)] FetchIssuers

2.9. Restart browser just in case.
2.10. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
image image image

2.11. Reset Brave Rewards. You should now be in the new non-connected state.

Example Example Example Example Example Example
image image image image image image

2.12. Restart browser just in case.
2.13. Make sure /parameters endpoint is still showing vbatDeadline field/value set in the past (such as January 2, 2023).

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-02T00:00:00Z","vbatExpired":false}
[14148:22364:0215/155045.397:VERBOSE9:logging_util.cc(135)]

2.14 Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
image image image

2.15. Delete your profile completely (fresh profile) and create one in 1.49.x. Enable Brave Rewards.

Example Example Example
image image image

2.16. Make sure /parameters endpoint’s vbatDeadline field/value is still set in the past (such as January 2, 2023). .

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-01-02T00:00:00Z","vbatExpired":false}
[11432:14216:0215/155516.925:VERBOSE9:logging_util.cc(135)]

2.17. You should be in the new non-connected state
2.18. Look at NTP Rewards Widget, Rewards panel, and brave://rewards page. Make sure there are no vBAT expiry notices anywhere.

Example Example Example
image image image
Case 3: vbatDeadline is in the future (custodian available → connected → reset into non-connected)_LOGGED #28538

3.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as UK)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

3.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
3.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
3.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T04:00:00Z","vbatExpired":false}
[19016:20660:0215/203558.920:VERBOSE9:logging_util.cc(135)]

3.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices. They SHOULD appear
(compare with Figma, row “Countdown to feature removal notification”). Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

  • Confirmed that the content of “Countdown to feature removal notification” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
  • Confirmed that click on “Connect account” opens up the connect account modal popup
brave://rewards NTP Rewards widget Rewards panel
image image image

3.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-03-25T04:00:00Z"
  • Ensured that the time is translated into local device time (IST) March 25, 2023 at 9 AM (IST = UTC + 5.30)

3.7. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
image image

3.8. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
image image

3.9. Connect a custodian.
3.10. Once connected, look around for vBAT expiry notices on NTP, brave://rewards, and Rewards dropdown panel. Now that you’re in the connected state, NO vBAT expiry notices should appear anywhere.

Example Example Example
image image image

3.11. Reset Brave Rewards and enable Brave Rewards. You’re now in the non-connected state. Check NTP, brave://rewards and Rewards dropdown panel. NO vBAT expiry notices should appear anywhere.

Example Example Example Example Example Example Example Example Example
image image image image image image image image image
Case 4: Japan version of vbatDeadline is in the future (custodian available → connected → reset into non-connected)_PASSED

4.1. In older version of Brave, create a Rewards profile in staging and declare JP region

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

4.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
4.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
4.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T04:00:00","vbatExpired":false}
[18424:9580:0215/223502.139:VERBOSE9:logging_util.cc(135)]

4.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices. They SHOULD appear
(compare with Figma, row “Countdown to feature removal notification”). Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

  • Confirmed that the content of “Countdown to feature removal notification” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
  • Confirmed that click on “Connect account” opens up the connect account modal popup
brave://rewards NTP Rewards widget Rewards panel
image image image

4.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-03-25T04:00:00Z"
  • Ensured that the time is translated into local device time (IST) March 25, 2023 at 9 AM (IST = UTC + 5.30)

4.7. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
image image

4.8. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
image image

4.9. Connect a custodian.
4.10. Once connected, look around for vBAT expiry notices on NTP, brave://rewards, and Rewards dropdown panel. Now that you’re in the connected state, NO vBAT expiry notices should appear anywhere.

Example Example Example
image image image

4.11. Reset Brave Rewards and enable Brave Rewards. You’re now in the non-connected state. Check NTP, brave://rewards and Rewards dropdown panel. NO vBAT expiry notices should appear anywhere.

Example Example Example Example Example Example Example
image image image image image image image
Case 5: vbatDeadline is in the future (custodian available → not available → available → connected → reset into non-connected)_PASSED

5.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in the US.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

5.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
5.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
5.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T00:00:00Z","vbatExpired":false}
[2816:3432:0216/122423.855:VERBOSE9:logging_util.cc(135)]

5.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices.

brave://rewards NTP Rewards widget Rewards panel
image image image

5.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

5.7. Now, have Ben Huson or proxy the /parameters endpoint so that there are NO available custodians for your region (in this example, US). I have added "GB" in the region not supported block for Uphold custodian

5.8. Make sure these new values are being picked up by the browser (e.g., try a browser restart).

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","US"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T00:00:00Z","vbatExpired":false}
[6268:12824:0216/124803.058:VERBOSE9:logging_util.cc(135)]

5.9. Check for vBAT notices on NTP, brave://rewards, and Rewards dropdown. However, they should now be the variant that says “no available custodian” (matches Figma row “Countdown to feature removal notification + No custodians available”). Make sure the “Learn more” buttons work in all of them (open up relevant pages).

  • Confirmed that the content of “Countdown to feature removal notification+ No custodians available” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
Example Example Example
image image image

5.10. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
image image

5.11. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
image image

5.12. Now, update /parameters endpoint so that there is at least 1 available custodian for GB, then confirm new /parameters values are being picked up by the browser.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T00:00:00Z","vbatExpired":false}
[16884:17384:0216/143205.179:VERBOSE9:logging_util.cc(135)]

5.13. Check to see if vBAT notices have returned to looking like Figma’s row “Countdown to feature removal notification”, which allows a user to connect custodian. Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

Example Example Example
image image image

5.14. Connect a custodian.
5.15. Look around and make sure no more vBAT notices of any kind appear in NTP, Rewards dropdown panel, or brave://rewards.

Example Example Example
image image image

5.16. Reset Brave Rewards then re-enable Rewards. You should now be in the non-connected state.

Example Example Example Example Example Example
image image image image image image

5.17. No vBAT expiry notices should appear anywhere: none on NTP, brave://rewards or dropdown panel.

Example Example Example
image image image
Case 6: Custodian available → forcible transition to non-connected_PASSED

6.1 Create a profile on 1.47.x or earlier and enable Rewards against staging in the UK.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

6.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
6.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
6.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T00:00:00Z","vbatExpired":false}
[2312:22044:0216/151948.274:VERBOSE9:logging_util.cc(135)]

6.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices (available custodian case).

Example Example Example
image image image

6.6. Now, change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true.
6.7. Make sure /parameters is picking up the new values.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-14T01:00:00Z","vbatExpired":true}
[5128:18852:0216/153816.583:VERBOSE9:logging_util.cc(135)]

6.8. Check Brave Rewards UI: user should now see the new non-connected state and no longer see the grandfathered-unverified state. No vBAT notices should appear anywhere. Do a general scan to make sure NTP widget, brave://rewards and Rewards dropdown panel match the new non-connected state.

Example Example Example
image image image
Case 7: Japan version of custodian available → forcible transition to non-connected_PASSED

7.1 Create a profile on 1.47.x or earlier and enable Rewards against staging and select the JP region

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

7.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
7.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
7.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T01:00:00Z","vbatExpired":false}
[11556:9336:0216/160246.347:VERBOSE9:logging_util.cc(135)]

7.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices (available custodian case).

Example Example Example
image image image

7.6. Now, change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true.
7.7. Make sure /parameters is picking up the new values.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-14T01:00:00Z","vbatExpired":true}
[20772:3468:0216/160814.931:VERBOSE9:logging_util.cc(135)]

7.8. Check Brave Rewards UI: user should now see the new non-connected state and no longer see the grandfathered-unverified state. No vBAT notices should appear anywhere. Do a general scan to make sure NTP widget, brave://rewards and Rewards dropdown panel match the new non-connected state.

Example Example Example
image image image
Case 8: No custodian available → forcible transition to non-connected_PASSED

8.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in a region that has no supported custodians (like Antarctica).

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

8.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
8.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
8.4. Make sure the right values are coming from /parameters.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T01:00:00Z","vbatExpired":false}
[23088:10372:0216/161946.923:VERBOSE9:logging_util.cc(135)]

8.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices (no available custodian case).

Example Example Example
image image image

8.6. Now, change /parameters to vbatDeadline to sometime in the recent past, and vbatExpired: true.
8.7. Make sure /parameters is picking up the new values.

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-02-14T01:00:00Z","vbatExpired":true}
[8768:2488:0216/162439.847:VERBOSE9:logging_util.cc(135)]

8.8. Check Brave Rewards UI: user should now see the new non-connected state and no longer see the grandfathered-unverified state. No vBAT notices should appear anywhere. Do a general scan to make sure NTP widget, brave://rewards and Rewards dropdown panel match the new non-connected state.

Example Example Example
image image image
Case 9: vBAT flag (custodian available → flag → unflag → no custodian available → flag)_PASSED

9.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in the US.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

9.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
9.3. Update to 1.49.x. You are now in the grandfathered-unverified state.
9.4. You should see vBAT expiry notices on NTP, brave://rewards and Rewards dropdown panel.

Example Example Example
image image image

Logs:

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T01:00:00Z","vbatExpired":false}
[1240:24272:0216/192453.103:VERBOSE9:logging_util.cc(135)]

9.5. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “disabled”.
9.6. Relaunch Brave.
image

9.7. Look around and make sure there are no vBAT expiry notices visible anymore.

Example Example Example
image image image

9.8. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “enabled”. Relaunch browser.
image

9.9. Make sure vBAT expiry notices appear again.

Example Example Example
image image image

9.10. Change /parameters so that there are no available custodians for your region (in this example, UK)

[ REQUEST ]
> URL: https://api.rewards.bravesoftware.com/v1/parameters
> Method: GET
....
[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.262301,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"processing","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-25T01:00:00Z","vbatExpired":false}
[18364:17304:0216/193635.608:VERBOSE9:logging_util.cc(135)]

9.11. vBAT notices should now show the Figma “Countdown to feature removal notification + No custodians available” case.

Example Example Example
image image image

9.12. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “disabled”. Relaunch browser.
image

9.13. Make sure all vBAT notices have disappeared.

Example Example Example
image image image

9.14. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “enabled”. Relaunch browser.
image

9.15. Make sure all vBAT notices have reappeared.

Example Example Example
image image image

9.16. Reset Brave Rewards so that you’re in the non-connected state.

Example Example Example Example Example Example Example
image image image image image image image

@LaurenWags LaurenWags added QA/In-Progress Indicates that QA is currently in progress for that particular issue and removed QA/In-Progress Indicates that QA is currently in progress for that particular issue labels Feb 28, 2023
@btlechowski
Copy link

btlechowski commented Mar 9, 2023

Verification passed on

Brave 1.49.120 Chromium: 111.0.5563.64 (Official Build) (64-bit)
Revision c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995}
OS Ubuntu 18.04 LTS
Case 3: vbatDeadline is in the future (custodian available → connected → reset into non-connected) - PASSED

3.1. In older version of Brave, create a Rewards profile in staging (ideally select a country with a supported custodian and that you have a matching account for, such as US but do not connect to custodian)

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

3.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
3.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
3.4. Make sure the right values are coming from /parameters.

[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-10T07:00:00Z","vbatExpired":false}

3.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices. They SHOULD appear
(compare with Figma, row “Countdown to feature removal notification”). Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

  • Confirmed that the content of “Countdown to feature removal notification” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
  • Confirmed that click on “Connect account” opens up the connect account modal popup
brave://rewards NTP Rewards widget Rewards panel
image image image

3.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-03-10T07:00:00Z"
  • Ensured that the time is translated into local device time (CET) 10 marca 2023 8:00 (CET = UTC+1)

3.7. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
image image

3.8. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
image image

3.9. Connect a custodian.
3.10. Once connected, look around for vBAT expiry notices on NTP, brave://rewards, and Rewards dropdown panel. Now that you’re in the connected state, NO vBAT expiry notices should appear anywhere.

Example Example Example
image image image

3.11. Reset Brave Rewards and enable Brave Rewards. You’re now in the non-connected state. Check NTP, brave://rewards and Rewards dropdown panel. NO vBAT expiry notices should appear anywhere.

Case 4: Japan version of vbatDeadline is in the future (custodian available → connected → reset into non-connected) - PASSED

Pre-req: Set my system to use JST for following test:

image

4.1. In older version of Brave, create a Rewards profile in staging and declare JP region

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

4.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is in the future. Note that vbatDeadline is a UTC date.
4.3. Update to 1.49.x. You should now be in the grandfathered-unverified state.
4.4. Make sure the right values are coming from /parameters.

[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-11T07:00:00Z","vbatExpired":false}

4.5. Go to NTP Rewards widget, brave://rewards, and Rewards dropdown panel and check for notices. They SHOULD appear
(compare with Figma, row “Countdown to feature removal notification”). Make sure the “Connect account” and “Learn more” buttons work in all of them (open up relevant pages or modals, but do not connect to custodian yet).

  • Confirmed that the content of “Countdown to feature removal notification” message is as per the Figma spec
  • Confirmed that click on “Learn more” (verified all the 3 places) redirects to https://brave.com/rewards-changes/
  • Confirmed that click on “Connect account” opens up the connect account modal popup
brave://rewards NTP Rewards widget Rewards panel
image image image

4.6. Inside each of the notices, make sure the date and time correspond with what’s at the /parameters endpoint. The parameters endpoint is in UTC, and the value shown in notices should be translated into your local device time.

  • The date and time at the /parameters endpoint is in UTC "2023-03-11T07:00:00Z"
  • Ensured that the time is translated into local device time (JST) 11 marca 2023 16:00 (JST = UTC + 9)

4.7. In the NTP Rewards widget, close the vBAT expiry notice. Then, refresh the NTP and it should appear again.

Close vBAT expiry notice in NTP Refresh NTP
image image

4.8. In the Rewards dropdown panel, close the vBAT expiry notice. Then, close and open the dropdown panel again. It should reappear again.

Close vBAT expiry notice in BR panel Refresh BR panel
image image

4.9. Connect a custodian.
4.10. Once connected, look around for vBAT expiry notices on NTP, brave://rewards, and Rewards dropdown panel. Now that you’re in the connected state, NO vBAT expiry notices should appear anywhere.

Example Example Example
image image image

4.11. Reset Brave Rewards and enable Brave Rewards. You’re now in the non-connected state. Check NTP, brave://rewards and Rewards dropdown panel. NO vBAT expiry notices should appear anywhere.

Case 9: vBAT flag (custodian available → flag → unflag → no custodian available → flag) - PASSED

9.1. Create a profile on 1.47.x or earlier and enable Rewards against staging in the PL.

1.47.x rewards settings 1.47.x BR panel 1.47.x NTP widget
image image image

9.2. Update parameters endpoint (or set up a proxy) so that vbatDeadline is sometime in the future.
9.3. Update to 1.49.x. You are now in the grandfathered-unverified state.
9.4. You should see vBAT expiry notices on NTP, brave://rewards and Rewards dropdown panel.

Example Example Example
image image image

Logs:

[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PL","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-11T07:00:00Z","vbatExpired":false}

9.5. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “disabled”.
9.6. Relaunch Brave.

image

9.7. Look around and make sure there are no vBAT expiry notices visible anymore.

Example Example Example
image image image

9.8. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “enabled”. Relaunch browser.

9.9. Make sure vBAT expiry notices appear again.

Example Example Example
image image image

9.10. Change /parameters so that there are no available custodians for your region (in this example, PL)

[ RESPONSE - OnResponse ]
> Url: https://api.rewards.bravesoftware.com/v1/parameters
> Result: Success
> HTTP Code: 200
> Body: {"autocontribute":{"choices":[1,2,3,5,7,10,20],"defaultChoice":1},"batRate":0.303048,"custodianRegions":{"bitflyer":{"allow":["JP"],"block":[]},"gemini":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB","US"],"block":[]},"uphold":{"allow":["AU","AT","BE","CA","CO","DK","FI","HK","IE","IT","NL","NO","PT","SG","ES","SE","GB","US","IN"],"block":[]}},"payoutStatus":{"bitflyer":"complete","gemini":"complete","payoutDate":"","unverified":"complete","uphold":"complete"},"tips":{"defaultMonthlyChoices":[1.25,5,10.5],"defaultTipChoices":[1.25,5,10.5]},"vbatDeadline":"2023-03-11T07:00:00Z","vbatExpired":false}

9.11. vBAT notices should now show the Figma “Countdown to feature removal notification + No custodians available” case.

Example Example Example
image image image

9.12. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “disabled”. Relaunch browser.

image

9.13. Make sure all vBAT notices have disappeared.

Example Example Example
image image image

9.14. Go to brave://flags and set BraveRewardsVBatNotice feature flag to “enabled”. Relaunch browser.

image

9.15. Make sure all vBAT notices have reappeared.

Example Example Example
image image image

9.16. Reset Brave Rewards so that you’re in the non-connected state.

image image image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment