Phase 8: update README for ValidatedEvent API and correct test command

This commit is contained in:
Jay
2026-05-22 16:59:10 -04:00
parent 9ff8ee0c9e
commit 35cfe0ebf6
+31 -33
View File
@@ -33,8 +33,8 @@ package main
import ( import (
"context" "context"
"encoding/json"
"log" "log"
"time"
"git.wisehodl.dev/jay/go-roots/events" "git.wisehodl.dev/jay/go-roots/events"
"git.wisehodl.dev/jay/go-roots/keys" "git.wisehodl.dev/jay/go-roots/keys"
@@ -53,7 +53,7 @@ func main() {
} }
defer driver.Close(ctx) defer driver.Close(ctx)
// Ensure the necessary indexes and constraints exist // Ensure the necessary indexes and constraints exist
if err := heartwood.SetNeo4jSchema(ctx, driver); err != nil { if err := heartwood.SetNeo4jSchema(ctx, driver); err != nil {
log.Fatal(err) log.Fatal(err)
} }
@@ -65,50 +65,48 @@ func main() {
} }
defer boltdb.Close() defer boltdb.Close()
// Build events using go-roots // Build and validate an event using go-roots
sk, _ := keys.GeneratePrivateKey() sk, _ := keys.GeneratePrivateKey()
pk, _ := keys.GetPublicKey(sk) pk, _ := keys.GetPublicKey(sk)
event := events.Event{ event := events.NewEvent(
PubKey: pk, events.WithPubKey(pk),
CreatedAt: 1000, events.WithCreatedAt(time.Now().Unix()),
Kind: 1, events.WithKind(1),
Content: "hello from heartwood", events.WithContent("hello from heartwood"),
Tags: []events.Tag{},
}
event.ID, _ = events.GenerateEventID(event)
event.Sig, _ = events.SignEvent(event, sk)
eventJSON, _ := json.Marshal(event)
// Write events
report, err := heartwood.WriteEvents(
[][]byte{eventJSON},
driver, boltdb,
nil, // default WriteOptions
) )
event.ID = events.GetID(event)
sig, err := events.SignEvent(event.ID, sk)
if err != nil {
log.Fatal(err)
}
event.Sig = sig
validated, err := events.NewValidatedEvent(event)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
log.Printf("created: %d, excluded: %d, duration: %s", // Write events
report.CreatedEventCount, report := heartwood.WriteEvents(
len(report.ExcludedEvents), []events.ValidatedEvent{validated},
report.Duration, driver, boltdb,
) nil, // default WriteOptions
)
if report.Error != nil {
log.Fatal(report.Error)
}
log.Printf("created: %d, excluded: %d, duration: %s",
report.CreatedEventCount,
len(report.ExcludedEvents),
report.Duration,
)
} }
``` ```
## Testing ## Testing
Run tests with:
```bash ```bash
go test ./... go test ./...
``` ```
Run with race detector:
```bash
go test -race ./...
```