Skip to content
quarry Artifact [f93a1a7c54]
Login

Artifact [f93a1a7c54]

Artifact f93a1a7c54bb994d8e72f5e26082ca8ef39e7bd788bbb05f1bca32474d42e4f8:


package index

import "testing"

func TestLandsOnWalksOpenLandingsToAPlainBranch(t *testing.T) {
	ls := []LandingSummary{
		{ID: "a", Branch: "a", Target: "trunk", State: "open"},
		{ID: "b", Branch: "b", Target: "a", State: "open"},
		{ID: "c", Branch: "c", Target: "b", State: "open"},
		{ID: "d", Branch: "d", Target: "trunk", State: "accepted"},
	}
	dest, through, ok := LandsOn(ls, "c")
	if !ok || dest != "trunk" || len(through) != 3 || through[0] != "c" || through[2] != "a" {
		t.Fatalf("LandsOn(c) = %q %v %v", dest, through, ok)
	}
	if dest, through, ok := LandsOn(ls, "d"); !ok || dest != "d" || len(through) != 0 {
		t.Fatalf("a settled landing's branch is plain: %q %v %v", dest, through, ok)
	}
	if dest, _, ok := LandsOn(ls, "trunk"); !ok || dest != "trunk" {
		t.Fatalf("LandsOn(trunk) = %q %v", dest, ok)
	}
	ls[0].Target = "c" // a -> c -> b -> a
	if _, _, ok := LandsOn(ls, "b"); ok {
		t.Fatal("a cycle reads as ok")
	}
}