From ad8b5d05520a967361fbfb5cd9fd8a5fecb900dc Mon Sep 17 00:00:00 2001 From: carla Date: Wed, 30 Sep 2020 12:34:05 +0200 Subject: [PATCH] liquidity: add clock for mocking time in tests --- go.mod | 1 + liquidity/liquidity.go | 4 ++++ liquidity/liquidity_test.go | 7 ++++++- loopd/utils.go | 4 +++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 61dc928..6dee319 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( github.com/lightninglabs/protobuf-hex-display v1.3.3-0.20191212020323-b444784ce75d github.com/lightningnetwork/lnd v0.11.1-beta.rc3 github.com/lightningnetwork/lnd/cert v1.0.3 + github.com/lightningnetwork/lnd/clock v1.0.1 github.com/lightningnetwork/lnd/queue v1.0.4 github.com/stretchr/testify v1.5.1 github.com/urfave/cli v1.20.0 diff --git a/liquidity/liquidity.go b/liquidity/liquidity.go index 47af6b1..bc5be2a 100644 --- a/liquidity/liquidity.go +++ b/liquidity/liquidity.go @@ -13,6 +13,7 @@ import ( "github.com/lightninglabs/lndclient" "github.com/lightninglabs/loop" "github.com/lightninglabs/loop/loopdb" + "github.com/lightningnetwork/lnd/clock" "github.com/lightningnetwork/lnd/lnwire" ) @@ -57,6 +58,9 @@ type Config struct { // Lnd provides us with access to lnd's rpc servers. Lnd *lndclient.LndServices + + // Clock allows easy mocking of time in unit tests. + Clock clock.Clock } // Parameters is a set of parameters provided by the user which guide diff --git a/liquidity/liquidity_test.go b/liquidity/liquidity_test.go index 386fc43..36492b8 100644 --- a/liquidity/liquidity_test.go +++ b/liquidity/liquidity_test.go @@ -3,16 +3,20 @@ package liquidity import ( "context" "testing" + "time" "github.com/lightninglabs/lndclient" "github.com/lightninglabs/loop" "github.com/lightninglabs/loop/loopdb" "github.com/lightninglabs/loop/test" + "github.com/lightningnetwork/lnd/clock" "github.com/lightningnetwork/lnd/lnwire" "github.com/stretchr/testify/require" ) var ( + testTime = time.Date(2020, 02, 13, 0, 0, 0, 0, time.UTC) + chanID1 = lnwire.NewShortChanIDFromInt(1) chanID2 = lnwire.NewShortChanIDFromInt(2) @@ -55,7 +59,8 @@ func newTestConfig() (*Config, *test.LndMockServices) { return NewRestrictions(1, 10000), nil }, - Lnd: &lnd.LndServices, + Lnd: &lnd.LndServices, + Clock: clock.NewTestClock(testTime), }, lnd } diff --git a/loopd/utils.go b/loopd/utils.go index c283e91..8b74a66 100644 --- a/loopd/utils.go +++ b/loopd/utils.go @@ -7,6 +7,7 @@ import ( "github.com/lightninglabs/lndclient" "github.com/lightninglabs/loop" "github.com/lightninglabs/loop/liquidity" + "github.com/lightningnetwork/lnd/clock" ) // getClient returns an instance of the swap client. @@ -46,7 +47,8 @@ func getLiquidityManager(client *loop.Client) *liquidity.Manager { outTerms.MinSwapAmount, outTerms.MaxSwapAmount, ), nil }, - Lnd: client.LndServices, + Lnd: client.LndServices, + Clock: clock.NewDefaultClock(), } return liquidity.NewManager(mngrCfg)