bug: add a test for operations hash

Michael Muré created

Change summary

bug/operation_test.go | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Detailed changes

bug/operation_test.go 🔗

@@ -3,6 +3,7 @@ package bug
 import (
 	"testing"
 
+	"github.com/MichaelMure/git-bug/repository"
 	"github.com/MichaelMure/git-bug/util/git"
 	"github.com/stretchr/testify/require"
 )
@@ -71,3 +72,38 @@ func TestMetadata(t *testing.T) {
 	require.True(t, ok)
 	require.Equal(t, val, "value")
 }
+
+func TestHash(t *testing.T) {
+	repos := []repository.ClockedRepo{
+		repository.NewMockRepoForTest(),
+		createRepo(false),
+	}
+
+	for _, repo := range repos {
+		b, op, err := Create(rene, unix, "title", "message")
+		require.Nil(t, err)
+
+		h1, err := op.Hash()
+		require.Nil(t, err)
+
+		err = b.Commit(repo)
+		require.Nil(t, err)
+
+		op2 := b.FirstOp()
+
+		h2, err := op2.Hash()
+		require.Nil(t, err)
+
+		require.Equal(t, h1, h2)
+
+		b2, err := ReadLocalBug(repo, b.id)
+		require.Nil(t, err)
+
+		op3 := b2.FirstOp()
+
+		h3, err := op3.Hash()
+		require.Nil(t, err)
+
+		require.Equal(t, h1, h3)
+	}
+}