diff --git a/src/tests/prepareNetwork.ts b/src/tests/prepareNetwork.ts new file mode 100644 index 00000000..956cf208 --- /dev/null +++ b/src/tests/prepareNetwork.ts @@ -0,0 +1,27 @@ +import { LoadTestSettingsFromEnv } from "../services/main/settings.js" +import { BitcoinCoreWrapper } from "./bitcoinCore.js" +import LND from '../services/lnd/lnd.js' +export const prepareNetwork = async () => { + + const settings = LoadTestSettingsFromEnv() + const core = new BitcoinCoreWrapper(settings) + await core.InitAddress() + await core.Mine(1) + const lnd = new LND(settings.lndSettings, () => { }, () => { }, () => { }, () => { }) + for (let i = 0; i < 10; i++) { + try { + const info = await lnd.GetInfo() + if (!info.syncedToChain) { + throw new Error("not synced to chain") + } + if (!info.syncedToGraph) { + throw new Error("not synced to graph") + } + return + } catch (e) { + console.log("waiting for lnd to be ready") + await new Promise(resolve => setTimeout(resolve, 1000)) + } + } + throw new Error("lnd is not ready after 10 seconds") +} \ No newline at end of file diff --git a/src/tests/testRunner.ts b/src/tests/testRunner.ts index aedeed05..5177ac86 100644 --- a/src/tests/testRunner.ts +++ b/src/tests/testRunner.ts @@ -1,7 +1,6 @@ import { globby } from 'globby' -import { LoadTestSettingsFromEnv } from '../services/main/settings.js' -import { BitcoinCoreWrapper } from './bitcoinCore.js' import { setupNetwork } from './networkSetup.js' +import { prepareNetwork } from './prepareNetwork.js' import { Describe, SetupTest, teardown, TestBase } from './testBase.js' @@ -25,10 +24,7 @@ const start = async () => { if (process.argv[2] === 'setup_network') { await setupNetwork() } else { - const core = new BitcoinCoreWrapper(LoadTestSettingsFromEnv()) - await core.InitAddress() - await core.Mine(1) - await new Promise((resolve) => setTimeout(resolve, 1000)) + await prepareNetwork() } const files = await globby(["**/*.spec.js", "!**/node_modules/**"]) const modules: { file: string, module: TestModule }[] = []