Preserve backup vouchers accross re-registration

This commit is contained in:
Ravi Khadiwala
2025-09-04 12:08:22 -05:00
committed by ravi-signal
parent 774cc52b61
commit 2af3088571
2 changed files with 9 additions and 0 deletions

View File

@@ -495,6 +495,10 @@ class AccountsTest {
final UUID existingPni = UUID.randomUUID();
final Account existingAccount = generateAccount(e164, existingUuid, existingPni, List.of(device));
// Backup vouchers should be carried over accross re-registration
final Account.BackupVoucher bv = new Account.BackupVoucher(1, Instant.now().plus(Duration.ofDays(1)));
existingAccount.setBackupVoucher(bv);
createAccount(existingAccount);
final byte[] usernameHash = TestRandomUtil.nextBytes(32);
@@ -531,6 +535,8 @@ class AccountsTest {
assertThat(result.getEncryptedUsername()).isEmpty();
assertArrayEquals(result.getReservedUsernameHash().orElseThrow(), usernameHash);
assertThat(result.getBackupVoucher()).isEqualTo(bv);
// should keep the same usernameLink, now encryptedUsername should be set
accounts.confirmUsernameHash(result, usernameHash, encryptedUsername).join();
item = readAccount(existingUuid);