Skip to content

Commit

Permalink
Add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
t-bast committed Feb 18, 2021
1 parent 381dd22 commit 48ac6b5
Showing 1 changed file with 42 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,54 @@ class WaitForFundingConfirmedStateSpec extends TestKitBaseClass with FixtureAnyF
awaitCond(alice.stateName == CLOSED)
}

test("recv BITCOIN_FUNDING_TIMEOUT") { f =>
test("recv BITCOIN_FUNDING_TIMEOUT (funder)") { f =>
import f._
alice ! BITCOIN_FUNDING_TIMEOUT
alice2bob.expectMsgType[Error]
awaitCond(alice.stateName == CLOSED)
}

test("recv BITCOIN_FUNDING_TIMEOUT (fundee)") { f =>
import f._
bob ! BITCOIN_FUNDING_TIMEOUT
bob2alice.expectMsgType[Error]
awaitCond(bob.stateName == CLOSED)
}

test("recv CurrentBlockCount (funder)") { f =>
import f._
val initialState = alice.stateData.asInstanceOf[DATA_WAIT_FOR_FUNDING_CONFIRMED]
alice ! CurrentBlockCount(initialState.waitingSinceBlock + Channel.FUNDING_TIMEOUT_FUNDEE + 1)
alice2bob.expectNoMsg(100 millis)
}

test("recv CurrentBlockCount (funding timeout not reached)") { f =>
import f._
val initialState = bob.stateData.asInstanceOf[DATA_WAIT_FOR_FUNDING_CONFIRMED]
bob ! CurrentBlockCount(initialState.waitingSinceBlock + Channel.FUNDING_TIMEOUT_FUNDEE - 1)
bob2alice.expectNoMsg(100 millis)
}

test("recv CurrentBlockCount (funding timeout reached)") { f =>
import f._
val initialState = bob.stateData.asInstanceOf[DATA_WAIT_FOR_FUNDING_CONFIRMED]
bob ! CurrentBlockCount(initialState.waitingSinceBlock + Channel.FUNDING_TIMEOUT_FUNDEE + 1)
bob2alice.expectMsgType[Error]
awaitCond(bob.stateName == CLOSED)
}

test("migrate waitingSince to waitingSinceBlocks") { f =>
import f._
// Before version 0.5.1, eclair used an absolute timestamp instead of a block height for funding timeouts.
val beforeMigration = bob.stateData.asInstanceOf[DATA_WAIT_FOR_FUNDING_CONFIRMED].copy(waitingSinceBlock = System.currentTimeMillis().milliseconds.toSeconds)
bob.setState(WAIT_FOR_INIT_INTERNAL, Nothing)
bob ! INPUT_RESTORED(beforeMigration)
awaitCond(bob.stateName == OFFLINE)
// We reset the waiting period to the current block height when starting up after updating eclair.
val currentBlockHeight = bob.underlyingActor.nodeParams.currentBlockHeight
assert(bob.stateData.asInstanceOf[DATA_WAIT_FOR_FUNDING_CONFIRMED].waitingSinceBlock === currentBlockHeight)
}

test("recv BITCOIN_FUNDING_SPENT (remote commit)") { f =>
import f._
// bob publishes his commitment tx
Expand Down

0 comments on commit 48ac6b5

Please sign in to comment.