Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970package types
import ( "strings" "testing" "time"
"github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/plumbing/object")
func TestPayloadRootCommit(t *testing.T) { when := time.Date(2025, 1, 1, 12, 0, 0, 0, time.UTC) sig := object.Signature{Name: "Alice", Email: "alice@example.com", When: when}
c := Commit{ Author: sig, Committer: sig, Message: "initial commit\n", Tree: "abc123", }
payload := c.Payload()
for _, line := range strings.Split(payload, "\n") { if strings.HasPrefix(line, "parent ") || line == "parent" { t.Errorf("root commit payload must not contain a parent line, got: %q\nfull payload:\n%s", line, payload) } }}
func TestPayloadWithParentHashes(t *testing.T) { when := time.Date(2025, 1, 1, 12, 0, 0, 0, time.UTC) sig := object.Signature{Name: "Alice", Email: "alice@example.com", When: when} parent := plumbing.NewHash("0000000000000000000000000000000000000001")
c := Commit{ Author: sig, Committer: sig, Message: "second commit\n", Tree: "abc123", ParentHashes: []plumbing.Hash{parent}, }
payload := c.Payload() want := "parent " + parent.String() if !strings.Contains(payload, want) { t.Errorf("payload missing %q\nfull payload:\n%s", want, payload) }}
func TestPayloadLegacyParentField(t *testing.T) { when := time.Date(2025, 1, 1, 12, 0, 0, 0, time.UTC) sig := object.Signature{Name: "Alice", Email: "alice@example.com", When: when}
c := Commit{ Author: sig, Committer: sig, Message: "second commit\n", Tree: "abc123", Parent: "0000000000000000000000000000000000000001", }
payload := c.Payload() want := "parent 0000000000000000000000000000000000000001" if !strings.Contains(payload, want) { t.Errorf("payload missing %q\nfull payload:\n%s", want, payload) }}