Skip to content

Commit 8fda63e

Browse files
committed
fixup! improve tests
1 parent beb4207 commit 8fda63e

File tree

1 file changed

+4
-50
lines changed

1 file changed

+4
-50
lines changed

eclair-core/src/test/scala/fr/acinq/eclair/channel/states/e/OfflineStateSpec.scala

Lines changed: 4 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ class OfflineStateSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike with
277277
assert(bob.stateData.asInstanceOf[DATA_NORMAL].commitments.localCommit.index === 4)
278278
}
279279

280-
test("discover that we have a revoked commitment") { f =>
280+
test("reconnect with an outdated commitment") { f =>
281281
import f._
282282

283283
val (ra1, htlca1) = addHtlc(250000000 msat, alice, bob, alice2bob, bob2alice)
@@ -327,7 +327,7 @@ class OfflineStateSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike with
327327
Transaction.correctlySpends(claimMainOutput, bobCommitTx :: Nil, ScriptFlags.STANDARD_SCRIPT_VERIFY_FLAGS)
328328
}
329329

330-
test("discover that they have a more recent commit than the one we know (but counterparty can't tell)") { f =>
330+
test("reconnect with an outdated commitment (but counterparty can't tell)") { f =>
331331
import f._
332332

333333
// we start by storing the current state
@@ -356,57 +356,11 @@ class OfflineStateSpec extends TestKitBaseClass with FixtureAnyFunSuiteLike with
356356
val reestablishA = alice2bob.expectMsgType[ChannelReestablish]
357357
val reestablishB = bob2alice.expectMsgType[ChannelReestablish]
358358

359-
// bob cannot detect that alice is late in this scenario (because alice has just missed one state)
359+
// bob cannot detect that alice is late (because alice has just missed one state), so it starts normally
360360
alice2bob.forward(bob, reestablishA)
361361
bob2alice.expectMsgType[RevokeAndAck]
362362
bob2alice.expectMsgType[CommitSig]
363-
bob2alice.expectNoMessage(100 millis)
364-
bob2blockchain.expectNoMessage(100 millis)
365-
366-
// alice realizes she has an old state when receiving Bob's reestablish
367-
bob2alice.forward(alice, reestablishB)
368-
// alice asks bob to publish its current commitment
369-
val error = alice2bob.expectMsgType[Error]
370-
assert(error === Error(channelId(alice), PleasePublishYourCommitment(channelId(alice)).getMessage))
371-
alice2bob.forward(bob)
372-
373-
// alice now waits for bob to publish its commitment
374-
awaitCond(alice.stateName == WAIT_FOR_REMOTE_PUBLISH_FUTURE_COMMITMENT)
375-
376-
// bob is nice and publishes its commitment
377-
alice ! WatchFundingSpentTriggered(bobCommitTx)
378-
379-
// alice is able to claim its main output
380-
val claimMainOutput = alice2blockchain.expectMsgType[PublishRawTx].tx
381-
Transaction.correctlySpends(claimMainOutput, bobCommitTx :: Nil, ScriptFlags.STANDARD_SCRIPT_VERIFY_FLAGS)
382-
}
383-
384-
test("discover that they have a more recent commit than the one we know") { f =>
385-
import f._
386-
387-
// we start by storing the current state
388-
val oldStateData = alice.stateData
389-
// then we add an htlc and sign it
390-
addHtlc(250000000 msat, alice, bob, alice2bob, bob2alice)
391-
crossSign(alice, bob, alice2bob, bob2alice)
392-
393-
// we keep track of bob commitment tx for later
394-
val bobCommitTx = bob.stateData.asInstanceOf[DATA_NORMAL].commitments.localCommit.commitTxAndRemoteSig.commitTx.tx
395-
396-
// we simulate a disconnection
397-
disconnect(alice, bob)
398-
399-
// then we manually replace alice's state with an older one
400-
alice.setState(OFFLINE, oldStateData)
401-
402-
// then we reconnect them
403-
reconnect(alice, bob, alice2bob, bob2alice)
404-
405-
val reestablishA = alice2bob.expectMsgType[ChannelReestablish]
406-
val reestablishB = bob2alice.expectMsgType[ChannelReestablish]
407-
408-
// bob realizes that alice is late and goes in standby
409-
alice2bob.forward(bob, reestablishA)
363+
bob2blockchain.expectMsgType[WatchFundingDeeplyBuried]
410364
bob2alice.expectNoMessage(100 millis)
411365
bob2blockchain.expectNoMessage(100 millis)
412366

0 commit comments

Comments
 (0)