@@ -367,8 +367,10 @@ class MultiPartHandlerSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike
367
367
val add2 = UpdateAddHtlc (ByteVector32 .One , 1 , 1600 msat, pr2.paymentHash, f.defaultExpiry, TestConstants .emptyOnionPacket)
368
368
f.sender.send(handler, IncomingPacket .FinalPacket (add2, Onion .createMultiPartPayload(add2.amountMsat, 2000 msat, add2.cltvExpiry, pr2.paymentSecret.get)))
369
369
370
- f.sender.send(handler, GetPendingPayments )
371
- assert(f.sender.expectMsgType[PendingPayments ].paymentHashes.nonEmpty)
370
+ awaitCond {
371
+ f.sender.send(handler, GetPendingPayments )
372
+ f.sender.expectMsgType[PendingPayments ].paymentHashes.nonEmpty
373
+ }
372
374
373
375
val commands = f.register.expectMsgType[Register .Forward [CMD_FAIL_HTLC ]] :: f.register.expectMsgType[Register .Forward [CMD_FAIL_HTLC ]] :: Nil
374
376
assert(commands.toSet === Set (
@@ -393,7 +395,8 @@ class MultiPartHandlerSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike
393
395
val nodeParams = Alice .nodeParams.copy(multiPartPaymentExpiry = 500 millis, features = featuresWithMpp)
394
396
val handler = TestActorRef [PaymentHandler ](PaymentHandler .props(nodeParams, f.register.ref))
395
397
396
- f.sender.send(handler, ReceivePayment (Some (1000 msat), " 1 fast coffee" ))
398
+ val preimage = randomBytes32()
399
+ f.sender.send(handler, ReceivePayment (Some (1000 msat), " 1 fast coffee" , paymentPreimage_opt = Some (preimage)))
397
400
val pr = f.sender.expectMsgType[PaymentRequest ]
398
401
399
402
val add1 = UpdateAddHtlc (ByteVector32 .One , 0 , 800 msat, pr.paymentHash, f.defaultExpiry, TestConstants .emptyOnionPacket)
@@ -404,15 +407,14 @@ class MultiPartHandlerSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike
404
407
val add3 = add2.copy(id = 43 )
405
408
f.sender.send(handler, IncomingPacket .FinalPacket (add3, Onion .createMultiPartPayload(add3.amountMsat, 1000 msat, add3.cltvExpiry, pr.paymentSecret.get)))
406
409
407
- f.register.expectMsg(Register .Forward (ActorRef .noSender, add2.channelId, CMD_FAIL_HTLC (add2.id, Right (IncorrectOrUnknownPaymentDetails (1000 msat, nodeParams.currentBlockHeight)), commit = true )))
408
- val cmd1 = f.register.expectMsgType[Register .Forward [CMD_FULFILL_HTLC ]]
409
- assert(cmd1.message.id === add1.id)
410
- assert(cmd1.channelId === add1.channelId)
411
- assert(Crypto .sha256(cmd1.message.r) === pr.paymentHash)
412
- f.register.expectMsg(Register .Forward (ActorRef .noSender, add3.channelId, CMD_FULFILL_HTLC (add3.id, cmd1.message.r, commit = true )))
410
+ f.register.expectMsgAllOf(
411
+ Register .Forward (ActorRef .noSender, add2.channelId, CMD_FAIL_HTLC (add2.id, Right (IncorrectOrUnknownPaymentDetails (1000 msat, nodeParams.currentBlockHeight)), commit = true )),
412
+ Register .Forward (ActorRef .noSender, add1.channelId, CMD_FULFILL_HTLC (add1.id, preimage, commit = true )),
413
+ Register .Forward (ActorRef .noSender, add3.channelId, CMD_FULFILL_HTLC (add3.id, preimage, commit = true ))
414
+ )
413
415
414
416
val paymentReceived = f.eventListener.expectMsgType[PaymentReceived ]
415
- assert(paymentReceived.copy( parts = paymentReceived.parts. map(_.copy(timestamp = 0 ))) === PaymentReceived (pr.paymentHash, PartialPayment (800 msat, ByteVector32 .One , 0 ) :: PartialPayment (200 msat, ByteVector32 .Zeroes , 0 ) :: Nil ))
417
+ assert(paymentReceived.parts. map(_.copy(timestamp = 0 )).toSet === Set ( PartialPayment (800 msat, ByteVector32 .One , 0 ), PartialPayment (200 msat, ByteVector32 .Zeroes , 0 )))
416
418
val received = nodeParams.db.payments.getIncomingPayment(pr.paymentHash)
417
419
assert(received.isDefined && received.get.status.isInstanceOf [IncomingPaymentStatus .Received ])
418
420
assert(received.get.status.asInstanceOf [IncomingPaymentStatus .Received ].amount === 1000 .msat)
@@ -423,7 +425,7 @@ class MultiPartHandlerSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike
423
425
424
426
// Extraneous HTLCs should be fulfilled.
425
427
f.sender.send(handler, MultiPartPaymentFSM .ExtraPaymentReceived (pr.paymentHash, HtlcPart (1000 msat, UpdateAddHtlc (ByteVector32 .One , 44 , 200 msat, pr.paymentHash, add1.cltvExpiry, add1.onionRoutingPacket)), None ))
426
- f.register.expectMsg(Register .Forward (ActorRef .noSender, ByteVector32 .One , CMD_FULFILL_HTLC (44 , cmd1.message.r , commit = true )))
428
+ f.register.expectMsg(Register .Forward (ActorRef .noSender, ByteVector32 .One , CMD_FULFILL_HTLC (44 , preimage , commit = true )))
427
429
assert(f.eventListener.expectMsgType[PaymentReceived ].amount === 200 .msat)
428
430
val received2 = nodeParams.db.payments.getIncomingPayment(pr.paymentHash)
429
431
assert(received2.get.status.asInstanceOf [IncomingPaymentStatus .Received ].amount === 1200 .msat)
0 commit comments