package audit import ( "testing" "github.com/stretchr/testify/assert" ) func TestAppendEntry(t *testing.T) { log := NewImmutableLog("", "workflow-1") entry, err := log.Append("Decision: approved", map[string]interface{}{}) assert.NoError(t, err) assert.NotNil(t, entry) assert.Equal(t, int64(1), entry.Sequence) } func TestVerifyIntegrity(t *testing.T) { log := NewImmutableLog("", "workflow-1") log.Append("Entry 1", map[string]interface{}{}) log.Append("Entry 2", map[string]interface{}{}) valid, err := log.Verify() assert.NoError(t, err) assert.True(t, valid) } func TestGetEntries(t *testing.T) { log := NewImmutableLog("", "workflow-1") log.Append("Entry 1", map[string]interface{}{}) log.Append("Entry 2", map[string]interface{}{}) entries := log.GetEntries() assert.Equal(t, 2, len(entries)) } func TestChainHashes(t *testing.T) { log := NewImmutableLog("", "workflow-1") entry1, _ := log.Append("Entry 1", map[string]interface{}{}) entry2, _ := log.Append("Entry 2", map[string]interface{}{}) assert.Equal(t, "genesis", entry1.PrevHash) assert.Equal(t, entry1.Hash, entry2.PrevHash) }