multi: restructure invoice Terms field
This commit restructures an invoice's ContractTerms to better encompass the restrictions placed on settling. For instance, the final ctlv delta and invoice expiry are moved from the main invoice body (where additional metadata is stored). Additionally, it moves the State field outside of the terms since it is rather metadata about the invoice instead of any terms offered to the sender in the payment request.
This commit is contained in:
8 files changed
+81
-82
No files matched your search
@@ -115,9 +115,9 @@ func TestSettleInvoice(t *testing.T) {
|
||||
// We expect the open state to be sent to the single invoice subscriber.
|
||||
select {
|
||||
case update := <-subscription.Updates:
|
||||
if update.Terms.State != channeldb.ContractOpen {
|
||||
if update.State != channeldb.ContractOpen {
|
||||
t.Fatalf("expected state ContractOpen, but got %v",
|
||||
update.Terms.State)
|
||||
update.State)
|
||||
}
|
||||
case <-time.After(testTimeout):
|
||||
t.Fatal("no update received")
|
||||
@@ -126,9 +126,9 @@ func TestSettleInvoice(t *testing.T) {
|
||||
// We expect a new invoice notification to be sent out.
|
||||
select {
|
||||
case newInvoice := <-allSubscriptions.NewInvoices:
|
||||
if newInvoice.Terms.State != channeldb.ContractOpen {
|
||||
if newInvoice.State != channeldb.ContractOpen {
|
||||
t.Fatalf("expected state ContractOpen, but got %v",
|
||||
newInvoice.Terms.State)
|
||||
newInvoice.State)
|
||||
}
|
||||
case <-time.After(testTimeout):
|
||||
t.Fatal("no update received")
|
||||
@@ -167,9 +167,9 @@ func TestSettleInvoice(t *testing.T) {
|
||||
// subscriber.
|
||||
select {
|
||||
case update := <-subscription.Updates:
|
||||
if update.Terms.State != channeldb.ContractSettled {
|
||||
if update.State != channeldb.ContractSettled {
|
||||
t.Fatalf("expected state ContractOpen, but got %v",
|
||||
update.Terms.State)
|
||||
update.State)
|
||||
}
|
||||
if update.AmtPaid != amtPaid {
|
||||
t.Fatal("invoice AmtPaid incorrect")
|
||||
@@ -181,9 +181,9 @@ func TestSettleInvoice(t *testing.T) {
|
||||
// We expect a settled notification to be sent out.
|
||||
select {
|
||||
case settledInvoice := <-allSubscriptions.SettledInvoices:
|
||||
if settledInvoice.Terms.State != channeldb.ContractSettled {
|
||||
if settledInvoice.State != channeldb.ContractSettled {
|
||||
t.Fatalf("expected state ContractOpen, but got %v",
|
||||
settledInvoice.Terms.State)
|
||||
settledInvoice.State)
|
||||
}
|
||||
case <-time.After(testTimeout):
|
||||
t.Fatal("no update received")
|
||||
@@ -288,10 +288,10 @@ func TestCancelInvoice(t *testing.T) {
|
||||
// We expect the open state to be sent to the single invoice subscriber.
|
||||
select {
|
||||
case update := <-subscription.Updates:
|
||||
if update.Terms.State != channeldb.ContractOpen {
|
||||
if update.State != channeldb.ContractOpen {
|
||||
t.Fatalf(
|
||||
"expected state ContractOpen, but got %v",
|
||||
update.Terms.State,
|
||||
update.State,
|
||||
)
|
||||
}
|
||||
case <-time.After(testTimeout):
|
||||
@@ -301,10 +301,10 @@ func TestCancelInvoice(t *testing.T) {
|
||||
// We expect a new invoice notification to be sent out.
|
||||
select {
|
||||
case newInvoice := <-allSubscriptions.NewInvoices:
|
||||
if newInvoice.Terms.State != channeldb.ContractOpen {
|
||||
if newInvoice.State != channeldb.ContractOpen {
|
||||
t.Fatalf(
|
||||
"expected state ContractOpen, but got %v",
|
||||
newInvoice.Terms.State,
|
||||
newInvoice.State,
|
||||
)
|
||||
}
|
||||
case <-time.After(testTimeout):
|
||||
@@ -321,10 +321,10 @@ func TestCancelInvoice(t *testing.T) {
|
||||
// subscriber.
|
||||
select {
|
||||
case update := <-subscription.Updates:
|
||||
if update.Terms.State != channeldb.ContractCanceled {
|
||||
if update.State != channeldb.ContractCanceled {
|
||||
t.Fatalf(
|
||||
"expected state ContractCanceled, but got %v",
|
||||
update.Terms.State,
|
||||
update.State,
|
||||
)
|
||||
}
|
||||
case <-time.After(testTimeout):
|
||||
@@ -402,16 +402,16 @@ func TestSettleHoldInvoice(t *testing.T) {
|
||||
|
||||
// We expect the open state to be sent to the single invoice subscriber.
|
||||
update := <-subscription.Updates
|
||||
if update.Terms.State != channeldb.ContractOpen {
|
||||
if update.State != channeldb.ContractOpen {
|
||||
t.Fatalf("expected state ContractOpen, but got %v",
|
||||
update.Terms.State)
|
||||
update.State)
|
||||
}
|
||||
|
||||
// We expect a new invoice notification to be sent out.
|
||||
newInvoice := <-allSubscriptions.NewInvoices
|
||||
if newInvoice.Terms.State != channeldb.ContractOpen {
|
||||
if newInvoice.State != channeldb.ContractOpen {
|
||||
t.Fatalf("expected state ContractOpen, but got %v",
|
||||
newInvoice.Terms.State)
|
||||
newInvoice.State)
|
||||
}
|
||||
|
||||
// Use slightly higher amount for accept/settle.
|
||||
@@ -474,9 +474,9 @@ func TestSettleHoldInvoice(t *testing.T) {
|
||||
// subscriber. For all invoice subscribers, we don't expect an update.
|
||||
// Those only get notified on settle.
|
||||
update = <-subscription.Updates
|
||||
if update.Terms.State != channeldb.ContractAccepted {
|
||||
if update.State != channeldb.ContractAccepted {
|
||||
t.Fatalf("expected state ContractAccepted, but got %v",
|
||||
update.Terms.State)
|
||||
update.State)
|
||||
}
|
||||
if update.AmtPaid != amtPaid {
|
||||
t.Fatal("invoice AmtPaid incorrect")
|
||||
@@ -500,9 +500,9 @@ func TestSettleHoldInvoice(t *testing.T) {
|
||||
// We expect a settled notification to be sent out for both all and
|
||||
// single invoice subscribers.
|
||||
settledInvoice := <-allSubscriptions.SettledInvoices
|
||||
if settledInvoice.Terms.State != channeldb.ContractSettled {
|
||||
if settledInvoice.State != channeldb.ContractSettled {
|
||||
t.Fatalf("expected state ContractSettled, but got %v",
|
||||
settledInvoice.Terms.State)
|
||||
settledInvoice.State)
|
||||
}
|
||||
if settledInvoice.AmtPaid != amtPaid {
|
||||
t.Fatalf("expected amount to be %v, but got %v",
|
||||
@@ -510,9 +510,9 @@ func TestSettleHoldInvoice(t *testing.T) {
|
||||
}
|
||||
|
||||
update = <-subscription.Updates
|
||||
if update.Terms.State != channeldb.ContractSettled {
|
||||
if update.State != channeldb.ContractSettled {
|
||||
t.Fatalf("expected state ContractSettled, but got %v",
|
||||
update.Terms.State)
|
||||
update.State)
|
||||
}
|
||||
|
||||
// Idempotency.
|
||||
|
||||
Reference in new issue
Block a user