34 lines
1.3 KiB
Go
34 lines
1.3 KiB
Go
package inventory
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// A merge no plan answers waits, and is listed as waiting until it is answered where it is kept (novox/hq issue 1146):
|
|
// what a first merge into a new repository does while it waits for mesh-delivery's word.
|
|
func TestAMergeNoPlanAnswersIsListedWaitingUntilItIsAnswered(t *testing.T) {
|
|
inv, c := anInventoryOnTheChain(t)
|
|
ctx := context.Background()
|
|
now := time.Now().UTC()
|
|
if added, err := inv.chainAddMerge(ctx, c, BatchedMerge{Repository: "novox/mesh-delivery", Branch: "main", Commit: "c1",
|
|
Merged: now, Heard: now}); err != nil || !added {
|
|
t.Fatalf("added %v, %v", added, err)
|
|
}
|
|
waiting, err := inv.chainWaitingMerges(ctx, c)
|
|
if err != nil || len(waiting) != 1 || waiting[0].Commit != "c1" {
|
|
t.Fatalf("waiting %+v, %v", waiting, err)
|
|
}
|
|
move := []MergeMove{{Repository: "novox/mesh-delivery", Commit: "c1", Plan: WaitingRecord}}
|
|
if err := inv.chainSavePlans(ctx, c, nil, move); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if waiting, err = inv.chainWaitingMerges(ctx, c); err != nil || len(waiting) != 0 {
|
|
t.Fatalf("answered, it still waits: %+v, %v", waiting, err)
|
|
}
|
|
if _, known, err := inv.chainMergeOf(ctx, c, "novox/mesh-delivery", "c1"); err != nil || !known {
|
|
t.Fatalf("an answered merge is no longer kept: %v %v", known, err)
|
|
}
|
|
}
|