From f9567f0d4fc5cf6d0e1cea2d22289250c6b1cb2b Mon Sep 17 00:00:00 2001 From: Shulhan Date: Mon, 5 Jan 2026 21:47:09 +0700 Subject: lib/git: implement Equaler interface on Git The Equaler interface provide the method Equal that when implemented can be used to compare two instances of struct. --- lib/git/git_test.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'lib/git/git_test.go') diff --git a/lib/git/git_test.go b/lib/git/git_test.go index 70a9ccca..65fe572d 100644 --- a/lib/git/git_test.go +++ b/lib/git/git_test.go @@ -134,6 +134,35 @@ Use '--' to separate paths from revisions, like this: } } +func TestGit_Equal(t *testing.T) { + type testCase struct { + v any + exp bool + } + var nilgit *Git + var listCase = []testCase{{ + v: nil, + }, { + v: os.ErrExist, + }, { + v: nilgit, + }} + + var agit *Git + var err error + agit, err = New(`testdata/Equal`) + if err != nil { + t.Fatal(err) + } + + var tc testCase + var got bool + for _, tc = range listCase { + got = agit.Equal(tc.v) + test.Assert(t, fmt.Sprintf(`%T`, tc.v), tc.exp, got) + } +} + func TestGetRemoteURL(t *testing.T) { cases := []struct { desc string @@ -393,3 +422,22 @@ func TestRemoteChange(t *testing.T) { test.Assert(t, "stdout", c.expStdout, mockStdout.String()) } } + +func TestGit_String(t *testing.T) { + var agit *Git + var err error + agit, err = New(`testdata/Equal`) + if err != nil { + t.Fatal(err) + } + + var wd string + wd, err = os.Getwd() + if err != nil { + t.Fatal(err) + } + + var exp = fmt.Sprintf(`git+file://%s/testdata/Equal`, wd) + var got = agit.String() + test.Assert(t, `String`, exp, got) +} -- cgit v1.3