aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-06-07 11:50:35 +0000
committerGravatar Runxi Yu2026-06-07 11:50:35 +0000
commit6da61a0e0aa0f160fe6a7e4f37d47bc2049a1ad2 (patch)
treeb0eb4996c1538e098862daba5b3ae59a7a30a842
parentinternal/testgit: Add UpdateRef and ForEachRefFormat (diff)
signatureNo signature
object/tag: Fix my silly self-referential append test, that belongs to roundtrip
-rw-r--r--object/tag/append_test.go37
1 files changed, 28 insertions, 9 deletions
diff --git a/object/tag/append_test.go b/object/tag/append_test.go
index b49d2e4b..f72183a1 100644
--- a/object/tag/append_test.go
+++ b/object/tag/append_test.go
@@ -12,7 +12,7 @@ import (
"lindenii.org/go/furgit/object/typ"
)
-func TestAppendGitFsck(t *testing.T) {
+func TestAppend(t *testing.T) {
t.Parallel()
for _, objectFormat := range id.SupportedObjectFormats() {
@@ -37,7 +37,7 @@ func TestAppendGitFsck(t *testing.T) {
Name: []byte("Test Tagger"),
Email: []byte("tagger@example.org"),
WhenUnix: 1234567890,
- OffsetMinutes: 0,
+ OffsetMinutes: -210,
},
Message: []byte("subject\n\nbody\n"),
}
@@ -60,17 +60,36 @@ func TestAppendGitFsck(t *testing.T) {
t.Fatalf("Fsck: %v", err)
}
- gitBody, err := repo.CatFile(t, typ.TypeTag, tagID)
- if err != nil {
- t.Fatalf("CatFile(tag): %v", err)
- }
+ const ref = "refs/tags/oracle"
- parsed, err := tag.Parse(gitBody, objectFormat)
+ err = repo.UpdateRef(t, ref, tagID)
if err != nil {
- t.Fatalf("Parse: %v", err)
+ t.Fatalf("UpdateRef: %v", err)
}
- assertTagEqual(t, parsed, tagObject)
+ for _, field := range []struct {
+ name string
+ format string
+ want string
+ }{
+ {name: "object", format: "%(object)", want: blobID.String()},
+ {name: "type", format: "%(type)", want: "blob"},
+ {name: "tag", format: "%(tag)", want: "blob-tag"},
+ {name: "taggername", format: "%(taggername)", want: "Test Tagger"},
+ {name: "taggeremail", format: "%(taggeremail:trim)", want: "tagger@example.org"},
+ {name: "taggerdate", format: "%(taggerdate:raw)", want: "1234567890 -0330"},
+ {name: "subject", format: "%(contents:subject)", want: "subject"},
+ {name: "body", format: "%(contents:body)", want: "body\n"},
+ } {
+ got, err := repo.ForEachRefFormat(t, ref, field.format)
+ if err != nil {
+ t.Fatalf("ForEachRefFormat(%s): %v", field.format, err)
+ }
+
+ if trimmed := strings.TrimSuffix(string(got), "\n"); trimmed != field.want {
+ t.Fatalf("%s = %q, want %q", field.name, trimmed, field.want)
+ }
+ }
})
}
}