Merge pull request #1979 from vitorpamplona/claude/nip24-compliance-check-WvjhO
Add birthday field support to UserMetadata
This commit is contained in:
+8
@@ -28,6 +28,13 @@ import com.vitorpamplona.quartz.utils.startsWithAny
|
|||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
class Birthday {
|
||||||
|
var year: Int? = null
|
||||||
|
var month: Int? = null
|
||||||
|
var day: Int? = null
|
||||||
|
}
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
@Serializable
|
@Serializable
|
||||||
class UserMetadata {
|
class UserMetadata {
|
||||||
@@ -41,6 +48,7 @@ class UserMetadata {
|
|||||||
var about: String? = null
|
var about: String? = null
|
||||||
var bot: Boolean? = null
|
var bot: Boolean? = null
|
||||||
var pronouns: String? = null
|
var pronouns: String? = null
|
||||||
|
var birthday: Birthday? = null
|
||||||
var nip05: String? = null
|
var nip05: String? = null
|
||||||
var domain: String? = null
|
var domain: String? = null
|
||||||
var lud06: String? = null
|
var lud06: String? = null
|
||||||
|
|||||||
+42
@@ -20,10 +20,13 @@
|
|||||||
*/
|
*/
|
||||||
package com.vitorpamplona.quartz.nip01Core.metadata
|
package com.vitorpamplona.quartz.nip01Core.metadata
|
||||||
|
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.core.JsonMapper
|
||||||
import com.vitorpamplona.quartz.utils.nsecToSigner
|
import com.vitorpamplona.quartz.utils.nsecToSigner
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
import kotlin.test.assertContentEquals
|
import kotlin.test.assertContentEquals
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertNotNull
|
||||||
|
import kotlin.test.assertNull
|
||||||
|
|
||||||
class UpdateMetadataTest {
|
class UpdateMetadataTest {
|
||||||
val signer = "nsec10g0wheggqn9dawlc0yuv6adnat6n09anr7eyykevw2dm8xa5fffs0wsdsr".nsecToSigner()
|
val signer = "nsec10g0wheggqn9dawlc0yuv6adnat6n09anr7eyykevw2dm8xa5fffs0wsdsr".nsecToSigner()
|
||||||
@@ -193,4 +196,43 @@ class UpdateMetadataTest {
|
|||||||
|
|
||||||
assertEquals(expected3, test3)
|
assertEquals(expected3, test3)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun parseBirthdayFull() {
|
||||||
|
val json = """{"name":"Test","birthday":{"year":1990,"month":6,"day":15}}"""
|
||||||
|
val metadata = JsonMapper.fromJson<UserMetadata>(json)
|
||||||
|
assertNotNull(metadata.birthday)
|
||||||
|
assertEquals(1990, metadata.birthday!!.year)
|
||||||
|
assertEquals(6, metadata.birthday!!.month)
|
||||||
|
assertEquals(15, metadata.birthday!!.day)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun parseBirthdayPartial() {
|
||||||
|
val json = """{"name":"Test","birthday":{"month":6,"day":15}}"""
|
||||||
|
val metadata = JsonMapper.fromJson<UserMetadata>(json)
|
||||||
|
assertNotNull(metadata.birthday)
|
||||||
|
assertNull(metadata.birthday!!.year)
|
||||||
|
assertEquals(6, metadata.birthday!!.month)
|
||||||
|
assertEquals(15, metadata.birthday!!.day)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun parseBirthdayAbsent() {
|
||||||
|
val json = """{"name":"Test"}"""
|
||||||
|
val metadata = JsonMapper.fromJson<UserMetadata>(json)
|
||||||
|
assertNull(metadata.birthday)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun birthdayRoundTrip() {
|
||||||
|
val json = """{"name":"Test","birthday":{"year":1990,"month":6,"day":15}}"""
|
||||||
|
val metadata = JsonMapper.fromJson<UserMetadata>(json)
|
||||||
|
val serialized = JsonMapper.toJson(metadata)
|
||||||
|
val reparsed = JsonMapper.fromJson<UserMetadata>(serialized)
|
||||||
|
assertNotNull(reparsed.birthday)
|
||||||
|
assertEquals(1990, reparsed.birthday!!.year)
|
||||||
|
assertEquals(6, reparsed.birthday!!.month)
|
||||||
|
assertEquals(15, reparsed.birthday!!.day)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user