From 2a30e656aae5cd3a1151e116ddce080a5fb9ef5e Mon Sep 17 00:00:00 2001 From: hatim boufnichel Date: Thu, 23 May 2024 21:56:20 +0200 Subject: [PATCH] close handing --- src/services/lnd/liquidityProvider.ts | 9 +++++++-- src/services/lnd/lnd.ts | 1 + src/tests/liquidityProvider.spec.ts | 3 ++- src/tests/networkSetup.ts | 3 +++ src/tests/setupBootstrapped.ts | 13 ++++++++----- src/tests/testRunner.ts | 2 +- 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/services/lnd/liquidityProvider.ts b/src/services/lnd/liquidityProvider.ts index 28de9c364..92a9fc1ff 100644 --- a/src/services/lnd/liquidityProvider.ts +++ b/src/services/lnd/liquidityProvider.ts @@ -22,6 +22,7 @@ export class LiquidityProvider { latestMaxWithdrawable: number | null = null invoicePaidCb: InvoicePaidCb connecting = false + readyInterval: NodeJS.Timeout // make the sub process accept client constructor(pubDestination: string, invoicePaidCb: InvoicePaidCb) { if (!pubDestination) { @@ -34,14 +35,18 @@ export class LiquidityProvider { retrieveNostrUserAuth: async () => this.myPub, }, this.clientSend, this.clientSub) - const interval = setInterval(() => { + this.readyInterval = setInterval(() => { if (this.ready) { - clearInterval(interval) + clearInterval(this.readyInterval) this.Connect() } }, 1000) } + Stop = () => { + clearInterval(this.readyInterval) + } + Connect = async () => { await new Promise(res => setTimeout(res, 2000)) this.log("ready") diff --git a/src/services/lnd/lnd.ts b/src/services/lnd/lnd.ts index 4834dfe30..58fa0db2e 100644 --- a/src/services/lnd/lnd.ts +++ b/src/services/lnd/lnd.ts @@ -77,6 +77,7 @@ export default class { } Stop() { this.abortController.abort() + this.liquidProvider.Stop() } async ShouldUseLiquidityProvider(req: LiquidityRequest): Promise { diff --git a/src/tests/liquidityProvider.spec.ts b/src/tests/liquidityProvider.spec.ts index 13268f835..bb5d8fdca 100644 --- a/src/tests/liquidityProvider.spec.ts +++ b/src/tests/liquidityProvider.spec.ts @@ -12,9 +12,10 @@ export default async (T: TestBase) => { disableLoggers([], ["EventsLogManager", "watchdog", "htlcTracker", "debugHtlcs", "debugLndBalancev3", "metrics", "mainForTest", "main"]) await safelySetUserBalance(T, T.user1, 2000) T.d("starting liquidityProvider tests...") - const { bootstrapped, bootstrappedUser } = await initBootstrappedInstance(T) + const { bootstrapped, bootstrappedUser, stop } = await initBootstrappedInstance(T) await testInboundPaymentFromProvider(T, bootstrapped, bootstrappedUser) await testOutboundPaymentFromProvider(T, bootstrapped, bootstrappedUser) + stop() await runSanityCheck(T) } diff --git a/src/tests/networkSetup.ts b/src/tests/networkSetup.ts index 45ea6ef73..91af289a1 100644 --- a/src/tests/networkSetup.ts +++ b/src/tests/networkSetup.ts @@ -47,6 +47,9 @@ export const setupNetwork = async () => { throw new Error("bob not synced to graph") } }, 15, 2000) + + alice.Stop() + bob.Stop() } const tryUntil = async (fn: (attempt: number) => Promise, maxTries: number, interval: number) => { diff --git a/src/tests/setupBootstrapped.ts b/src/tests/setupBootstrapped.ts index 2abc09908..9b1bfc5ab 100644 --- a/src/tests/setupBootstrapped.ts +++ b/src/tests/setupBootstrapped.ts @@ -6,7 +6,6 @@ import { TestBase, TestUserData } from './testBase.js' import * as Types from '../../proto/autogenerated/ts/types.js' export const initBootstrappedInstance = async (T: TestBase) => { - const requests = {} const settings = LoadTestSettingsFromEnv() settings.lndSettings.useOnlyLiquidityProvider = true settings.lndSettings.liquidityProviderPub = T.app.publicKey @@ -15,8 +14,8 @@ export const initBootstrappedInstance = async (T: TestBase) => { if (!initialized) { throw new Error("failed to initialize bootstrapped main handler") } - const { mainHandler: bootstrapped, liquidityProviderInfo, liquidityProviderApp, apps } = initialized - T.main.attachNostrSend(async (initiator, data, r) => { + const { mainHandler: bootstrapped, liquidityProviderInfo, liquidityProviderApp } = initialized + T.main.attachNostrSend(async (_, data, r) => { if (data.type === 'event') { throw new Error("unsupported event type") } @@ -27,7 +26,7 @@ export const initBootstrappedInstance = async (T: TestBase) => { console.log("sending new operation to provider") bootstrapped.liquidProvider.onEvent(j, T.app.publicKey) }) - bootstrapped.liquidProvider.attachNostrSend(async (initiator, data, r) => { + bootstrapped.liquidProvider.attachNostrSend(async (_, data, r) => { const res = await handleSend(T, data) if (data.type === 'event') { throw new Error("unsupported event type") @@ -50,7 +49,11 @@ export const initBootstrappedInstance = async (T: TestBase) => { }) const bUser = await bootstrapped.applicationManager.AddAppUser(liquidityProviderApp.appId, { identifier: "user1_bootstrapped", balance: 0, fail_if_exists: true }) const bootstrappedUser: TestUserData = { userId: bUser.info.userId, appUserIdentifier: bUser.identifier, appId: liquidityProviderApp.appId } - return { bootstrapped, liquidityProviderInfo, liquidityProviderApp, bootstrappedUser } + return { + bootstrapped, liquidityProviderInfo, liquidityProviderApp, bootstrappedUser, stop: () => { + bootstrapped.Stop() + } + } } type TransportRequest = { requestId: string, authIdentifier: string } & ( { rpcName: 'GetUserInfo' } | diff --git a/src/tests/testRunner.ts b/src/tests/testRunner.ts index 4821be4f1..b25172508 100644 --- a/src/tests/testRunner.ts +++ b/src/tests/testRunner.ts @@ -1,7 +1,7 @@ + import { globby } from 'globby' import { setupNetwork } from './networkSetup.js' import { Describe, SetupTest, teardown, TestBase } from './testBase.js' - type TestModule = { ignore?: boolean dev?: boolean