Skip to content

Commit f6f752f

Browse files
committed
Add tests for Offers with fiat amount
Introduces tests to ensure the successful creation of `InvoiceRequest` when specifying a currency amount with no amount_msats. And verifies that when both a currency amount and amount_msats are specified, the values are handled correctly. This ensures that `InvoiceRequest` behaves as expected with various amount configs.
1 parent 7dfcbc5 commit f6f752f

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

lightning/src/offers/invoice_request.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1737,6 +1737,29 @@ mod tests {
17371737
Ok(_) => panic!("expected error"),
17381738
Err(e) => assert_eq!(e, Bolt12SemanticError::InvalidAmount),
17391739
}
1740+
1741+
let invoice_request = OfferBuilder::new(recipient_pubkey())
1742+
.amount(Amount::Currency { iso4217_code: *b"USD", amount: 1000 })
1743+
.build_unchecked()
1744+
.request_invoice(vec![1; 32], payer_pubkey()).unwrap()
1745+
.build().unwrap()
1746+
.sign(payer_sign).unwrap();
1747+
let (_, _, tlv_stream, _) = invoice_request.as_tlv_stream();
1748+
assert_eq!(invoice_request.amount(), Some(Amount::Currency { iso4217_code: *b"USD", amount: 1000 }));
1749+
assert_eq!(invoice_request.amount_msats(), None);
1750+
assert_eq!(tlv_stream.amount, None);
1751+
1752+
let invoice_request = OfferBuilder::new(recipient_pubkey())
1753+
.amount(Amount::Currency { iso4217_code: *b"USD", amount: 100 })
1754+
.build_unchecked()
1755+
.request_invoice(vec![1; 32], payer_pubkey()).unwrap()
1756+
.amount_msats(150_000_000)
1757+
.unwrap()
1758+
.build().unwrap()
1759+
.sign(payer_sign).unwrap();
1760+
let (_, _, tlv_stream, _) = invoice_request.as_tlv_stream();
1761+
assert_eq!(invoice_request.amount_msats(), Some(150_000_000));
1762+
assert_eq!(tlv_stream.amount, Some(150_000_000));
17401763
}
17411764

17421765
#[test]

0 commit comments

Comments
 (0)