Skip to content

Commit ac2b784

Browse files
authored
Fix flaky relay-htlc-add test (#1752)
We need to wait for the channel relayer to be registered to the event stream before publishing an event, otherwise the channel relayer will never receive it. We send it a first message and wait for its response to ensure it had time to correctly initialize.
1 parent 936f36b commit ac2b784

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

eclair-core/src/test/scala/fr/acinq/eclair/payment/relay/RelayerSpec.scala

+6-2
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,13 @@ class RelayerSpec extends ScalaTestWithActorTestKit(ConfigFactory.load("applicat
7171
test("relay an htlc-add") { f =>
7272
import f._
7373

74-
system.eventStream ! EventStream.Publish(LocalChannelUpdate(null, channelId_bc, channelUpdate_bc.shortChannelId, c, None, channelUpdate_bc, makeCommitments(channelId_bc)))
75-
74+
// We make sure the channel relayer is initialized
7675
val sender = TestProbe[Relayer.OutgoingChannels]()
76+
childActors.channelRelayer ! ChannelRelayer.GetOutgoingChannels(sender.ref.toClassic, GetOutgoingChannels())
77+
assert(sender.expectMessageType[Relayer.OutgoingChannels].channels.isEmpty)
78+
79+
// We publish a channel update, that should be picked up by the channel relayer
80+
system.eventStream ! EventStream.Publish(LocalChannelUpdate(null, channelId_bc, channelUpdate_bc.shortChannelId, c, None, channelUpdate_bc, makeCommitments(channelId_bc)))
7781
eventually(PatienceConfiguration.Timeout(30 seconds), PatienceConfiguration.Interval(1 second)) {
7882
childActors.channelRelayer ! ChannelRelayer.GetOutgoingChannels(sender.ref.toClassic, GetOutgoingChannels())
7983
val channels = sender.expectMessageType[Relayer.OutgoingChannels].channels

0 commit comments

Comments
 (0)