package com.peachpasswords.sync import org.junit.Assert.assertEquals import org.junit.Assert.assertThrows import org.junit.Test class PairedDeviceAliasTest { private val device = PairedDevice( deviceId = "phone-1", deviceName = "Pixel", longTermPublicKeyHex = "a".repeat(64), pairedAt = 1, ) @Test fun `rename stores a trimmed local alias without changing peer identity`() { val renamed = withLocalAlias(listOf(device), device.deviceId, " Travel phone ").single() assertEquals("Travel phone", renamed.localAlias) assertEquals(device.deviceName, renamed.deviceName) assertEquals(device.longTermPublicKeyHex, renamed.longTermPublicKeyHex) } @Test fun `rename rejects blank oversized and unknown aliases`() { assertThrows(IllegalArgumentException::class.java) { withLocalAlias(listOf(device), device.deviceId, " ") } assertThrows(IllegalArgumentException::class.java) { withLocalAlias(listOf(device), device.deviceId, "x".repeat(65)) } assertThrows(IllegalArgumentException::class.java) { withLocalAlias(listOf(device), "missing", "Phone") } } }