Skip to content

Commit fce4d1f

Browse files
committed
test: add lnurl amount conversion unit tests
1 parent 7895d92 commit fce4d1f

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package to.bitkit.ext
2+
3+
import com.synonym.bitkitcore.LnurlPayData
4+
import com.synonym.bitkitcore.LnurlWithdrawData
5+
import org.junit.Test
6+
import to.bitkit.test.BaseUnitTest
7+
import kotlin.test.assertEquals
8+
9+
class LnurlExtTest : BaseUnitTest() {
10+
11+
@Test
12+
fun `minSendableSat rounds up when msats not divisible by 1000`() {
13+
val data = LnurlPayData(
14+
uri = "lnurl",
15+
callback = "callback",
16+
minSendable = 100_500u,
17+
maxSendable = 200_000u,
18+
metadataStr = "[]",
19+
commentAllowed = null,
20+
allowsNostr = false,
21+
nostrPubkey = null,
22+
)
23+
24+
assertEquals(101u, data.minSendableSat())
25+
}
26+
27+
@Test
28+
fun `minSendableSat keeps exact sat amounts`() {
29+
val data = LnurlPayData(
30+
uri = "lnurl",
31+
callback = "callback",
32+
minSendable = 100_000u,
33+
maxSendable = 200_000u,
34+
metadataStr = "[]",
35+
commentAllowed = null,
36+
allowsNostr = false,
37+
nostrPubkey = null,
38+
)
39+
40+
assertEquals(100u, data.minSendableSat())
41+
}
42+
43+
@Test
44+
fun `maxSendableSat floors when msats not divisible by 1000`() {
45+
val data = LnurlPayData(
46+
uri = "lnurl",
47+
callback = "callback",
48+
minSendable = 1_000u,
49+
maxSendable = 100_999u,
50+
metadataStr = "[]",
51+
commentAllowed = null,
52+
allowsNostr = false,
53+
nostrPubkey = null,
54+
)
55+
56+
assertEquals(100u, data.maxSendableSat())
57+
}
58+
59+
@Test
60+
fun `minWithdrawableSat rounds up and treats null as zero`() {
61+
val nullMin = LnurlWithdrawData(
62+
uri = "lnurl",
63+
callback = "callback",
64+
k1 = "k1",
65+
defaultDescription = "desc",
66+
minWithdrawable = null,
67+
maxWithdrawable = 1_000u,
68+
tag = "withdraw",
69+
)
70+
assertEquals(0u, nullMin.minWithdrawableSat())
71+
72+
val nonRoundMin = nullMin.copy(minWithdrawable = 1_500u)
73+
assertEquals(2u, nonRoundMin.minWithdrawableSat())
74+
}
75+
}

0 commit comments

Comments
 (0)