Files
go-heartwood/schema_test.go
2026-03-02 14:50:27 -05:00

46 lines
1.0 KiB
Go

package heartwood
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestNewRelationshipWithValidation(t *testing.T) {
cases := []struct {
name string
start *Node
end *Node
wantErr bool
wantErrText string
}{
{
name: "valid start and end nodes",
start: NewUserNode("pubkey1"),
end: NewEventNode("abc123"),
},
{
name: "mismatched start node label",
start: NewEventNode("abc123"),
end: NewEventNode("abc123"),
wantErr: true,
wantErrText: "expected start node to have label 'User'",
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
rel, err := NewSignedRel(tc.start, tc.end, nil)
if tc.wantErr {
assert.Error(t, err)
assert.ErrorContains(t, err, tc.wantErrText)
assert.Nil(t, rel)
return
}
assert.NoError(t, err)
assert.Equal(t, "SIGNED", rel.Type)
assert.Contains(t, rel.Start.Labels.ToArray(), "User")
assert.Contains(t, rel.End.Labels.ToArray(), "Event")
})
}
}