From 6d52128da0f46a9964c9dababc095426c8a0a6ab Mon Sep 17 00:00:00 2001 From: "Johan T. Halseth" Date: Tue, 4 Jun 2019 10:34:59 +0200 Subject: [PATCH] routing/router test: assert SendToRoute init values This commit adds an assertion to the SendToRoute test that the payment value stored to the DB during SendToRoute execution is the correct one. This assertion would fail before the previous commit that fixed a missing value initialization. --- routing/router_test.go | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/routing/router_test.go b/routing/router_test.go index f90dbd8c5..54ee4708e 100644 --- a/routing/router_test.go +++ b/routing/router_test.go @@ -3175,27 +3175,31 @@ func TestSendToRouteStructuredError(t *testing.T) { } defer cleanUp() + // Set up an init channel for the control tower, such that we can make + // sure the payment is initiated correctly. + init := make(chan initArgs, 1) + ctx.router.cfg.Control.(*mockControlTower).init = init + // Setup a route from source a to destination c. The route will be used // in a call to SendToRoute. SendToRoute also applies channel updates, // but it saves us from including RequestRoute in the test scope too. + const payAmt = lnwire.MilliSatoshi(10000) hop1 := ctx.aliases["b"] hop2 := ctx.aliases["c"] - hops := []*route.Hop{ { - ChannelID: 1, - PubKeyBytes: hop1, + ChannelID: 1, + PubKeyBytes: hop1, + AmtToForward: payAmt, }, { - ChannelID: 2, - PubKeyBytes: hop2, + ChannelID: 2, + PubKeyBytes: hop2, + AmtToForward: payAmt, }, } - rt, err := route.NewRouteFromHops( - lnwire.MilliSatoshi(10000), 100, - ctx.aliases["a"], hops, - ) + rt, err := route.NewRouteFromHops(payAmt, 100, ctx.aliases["a"], hops) if err != nil { t.Fatalf("unable to create route: %v", err) } @@ -3239,4 +3243,14 @@ func TestSendToRouteStructuredError(t *testing.T) { if _, ok := fErr.FailureMessage.(*lnwire.FailFeeInsufficient); !ok { t.Fatalf("expected fee insufficient error") } + + // Check that the correct values were used when initiating the payment. + select { + case initVal := <-init: + if initVal.c.Value != payAmt { + t.Fatalf("expected %v, got %v", payAmt, initVal.c.Value) + } + case <-time.After(100 * time.Millisecond): + t.Fatalf("initPayment not called") + } }