From 68af9760b3a3d50429de6bd8e5c7cf3af7759080 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Sat, 9 Jan 2021 17:07:26 -0600 Subject: [PATCH] =?UTF-8?q?Clean=20up=20fixture=20shutdown=20code=20a=20bi?= =?UTF-8?q?t=20to=20try=20and=20see=20if=20this=20resolves=20=E2=80=A6=20(?= =?UTF-8?q?#2498)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Clean up fixture shutdown code a bit to try and see if this resolves issue on CI * Rework fixtures so we aren't starting app configs in multiple places * Fix scaladoc --- .../main/scala/org/bitcoins/node/Node.scala | 1 + .../node/NodeFundedWalletBitcoind.scala | 22 +++++++++++++++++-- .../bitcoins/testkit/node/NodeUnitTest.scala | 14 ++++++------ 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/node/src/main/scala/org/bitcoins/node/Node.scala b/node/src/main/scala/org/bitcoins/node/Node.scala index e4e775513a..3bc6ae2690 100644 --- a/node/src/main/scala/org/bitcoins/node/Node.scala +++ b/node/src/main/scala/org/bitcoins/node/Node.scala @@ -119,6 +119,7 @@ trait Node extends NodeApi with ChainQueryApi with P2PLogger { val start = System.currentTimeMillis() for { + _ <- chainAppConfig.start() _ <- nodeAppConfig.start() // get chainApi so we don't need to call chainApiFromDb on every call chainApi <- chainApiFromDb() diff --git a/testkit/src/main/scala/org/bitcoins/testkit/node/NodeFundedWalletBitcoind.scala b/testkit/src/main/scala/org/bitcoins/testkit/node/NodeFundedWalletBitcoind.scala index f99a6314b2..f1d838272e 100644 --- a/testkit/src/main/scala/org/bitcoins/testkit/node/NodeFundedWalletBitcoind.scala +++ b/testkit/src/main/scala/org/bitcoins/testkit/node/NodeFundedWalletBitcoind.scala @@ -2,6 +2,11 @@ package org.bitcoins.testkit.node import org.bitcoins.node.{NeutrinoNode, Node, SpvNode} import org.bitcoins.rpc.client.common.BitcoindRpcClient +import org.bitcoins.testkit.node.fixture.{ + NeutrinoNodeConnectedWithBitcoind, + NodeConnectedWithBitcoind, + SpvNodeConnectedWithBitcoind +} import org.bitcoins.wallet.Wallet /** @@ -16,6 +21,9 @@ trait NodeFundedWalletBitcoind { def wallet: Wallet def bitcoindRpc: BitcoindRpcClient def bip39PasswordOpt: Option[String] + + /** Helper method to convert from this to a [[NodeConnectedWithBitcoind]] */ + def toNodeConnectedWithBitcoind: NodeConnectedWithBitcoind } case class SpvNodeFundedWalletBitcoind( @@ -23,11 +31,21 @@ case class SpvNodeFundedWalletBitcoind( wallet: Wallet, bitcoindRpc: BitcoindRpcClient, bip39PasswordOpt: Option[String]) - extends NodeFundedWalletBitcoind + extends NodeFundedWalletBitcoind { + + override def toNodeConnectedWithBitcoind: SpvNodeConnectedWithBitcoind = { + SpvNodeConnectedWithBitcoind(node, bitcoindRpc) + } +} case class NeutrinoNodeFundedWalletBitcoind( node: NeutrinoNode, wallet: Wallet, bitcoindRpc: BitcoindRpcClient, bip39PasswordOpt: Option[String]) - extends NodeFundedWalletBitcoind + extends NodeFundedWalletBitcoind { + + override def toNodeConnectedWithBitcoind: NeutrinoNodeConnectedWithBitcoind = { + NeutrinoNodeConnectedWithBitcoind(node, bitcoindRpc) + } +} diff --git a/testkit/src/main/scala/org/bitcoins/testkit/node/NodeUnitTest.scala b/testkit/src/main/scala/org/bitcoins/testkit/node/NodeUnitTest.scala index 28bff58403..ff2c323015 100644 --- a/testkit/src/main/scala/org/bitcoins/testkit/node/NodeUnitTest.scala +++ b/testkit/src/main/scala/org/bitcoins/testkit/node/NodeUnitTest.scala @@ -176,7 +176,10 @@ trait NodeUnitTest extends BitcoinSFixture with EmbeddedPg { node <- NodeUnitTest.createSpvNode(emptyPeer)(system, appConfig.chainConf, appConfig.nodeConf) - + //we aren't calling node.start(), but we need to call appConfig.start() + //to make sure migrations are run + _ <- node.chainConfig.start() + _ <- node.nodeConfig.start() } yield node } @@ -474,10 +477,9 @@ object NodeUnitTest extends P2PLogger { //these need to be done in order, as the spv node needs to be //stopped before the bitcoind node is stopped val destroyedF = for { - _ <- destroyNode(fundedWalletBitcoind.node) - _ <- BitcoinSWalletTest.destroyWalletWithBitcoind(walletWithBitcoind) - _ = cleanTables(appConfig) - _ <- appConfig.stop() + _ <- BitcoinSWalletTest.destroyWallet(walletWithBitcoind.wallet) + _ <- destroyNodeConnectedWithBitcoind( + fundedWalletBitcoind.toNodeConnectedWithBitcoind) } yield () destroyedF @@ -524,8 +526,6 @@ object NodeUnitTest extends P2PLogger { } val chainApiF = for { _ <- checkConfigF - _ = chainAppConfig.migrate() - _ = nodeAppConfig.start() chainHandler <- ChainUnitTest.createChainHandler() } yield chainHandler val nodeF = for {