1package com.peachpasswords.ui.pairing23import org.junit.Assert.assertEquals4import org.junit.Assert.assertThrows5import org.junit.Test67class AdoptVaultSafetyTest {8 @Test fun populated_vault_starts_at_pairing_without_a_repair_disclosure() {9 assertEquals(AdoptVaultUiState.Pair, initialAdoptVaultState(hasVault = true))10 }1112 @Test fun empty_install_still_collects_a_local_password_first() {13 assertEquals(AdoptVaultUiState.Password, initialAdoptVaultState(hasVault = false))14 }1516 @Test fun same_vault_identity_may_repair_without_mutation() {17 val id = "ab".repeat(32)1819 assertEquals(id, requireSameVaultForPopulatedRePair(id, id))20 }2122 @Test fun different_populated_vaults_are_never_merged_by_pairing() {23 val error = assertThrows(IllegalStateException::class.java) {24 requireSameVaultForPopulatedRePair("ab".repeat(32), "cd".repeat(32))25 }2627 assertEquals("JOIN_POPULATED_VAULT_BLOCKED", error.message)28 }2930 @Test fun locked_populated_vault_cannot_be_repaired() {31 val error = assertThrows(IllegalStateException::class.java) {32 requireSameVaultForPopulatedRePair(null, "cd".repeat(32))33 }3435 assertEquals("vault_locked", error.message)36 }37}