63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package data
|
|
|
|
import (
|
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/data/threadbuilder"
|
|
"github.com/anytypeio/go-anytype-infrastructure-experiments/data/threadmodels"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestDocumentStateBuilder_UserJoinBuild(t *testing.T) {
|
|
thread, err := threadbuilder.NewThreadBuilderFromFile("threadbuilder/userjoinexample.yml")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
keychain := thread.GetKeychain()
|
|
ctx, err := createDocumentStateFromThread(
|
|
thread,
|
|
keychain.GetIdentity("A"),
|
|
keychain.EncryptionKeys["A"],
|
|
threadmodels.NewEd25519Decoder())
|
|
if err != nil {
|
|
t.Fatalf("should build acl aclState without err: %v", err)
|
|
}
|
|
|
|
st := ctx.DocState
|
|
allIds := make(map[string]bool)
|
|
for _, b := range st.Blocks() {
|
|
allIds[b.Id] = true
|
|
}
|
|
if err != nil {
|
|
t.Fatalf("iterate should not return error: %v", err)
|
|
}
|
|
assert.True(t, allIds["root"])
|
|
assert.True(t, allIds["first"])
|
|
}
|
|
|
|
func TestDocumentStateBuilder_UserRemoveBuild(t *testing.T) {
|
|
thread, err := threadbuilder.NewThreadBuilderFromFile("threadbuilder/userremoveexample.yml")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
keychain := thread.GetKeychain()
|
|
ctx, err := createDocumentStateFromThread(
|
|
thread,
|
|
keychain.GetIdentity("A"),
|
|
keychain.EncryptionKeys["A"],
|
|
threadmodels.NewEd25519Decoder())
|
|
if err != nil {
|
|
t.Fatalf("should build acl aclState without err: %v", err)
|
|
}
|
|
|
|
st := ctx.DocState
|
|
allIds := make(map[string]bool)
|
|
for _, b := range st.Blocks() {
|
|
allIds[b.Id] = true
|
|
}
|
|
if err != nil {
|
|
t.Fatalf("iterate should not return error: %v", err)
|
|
}
|
|
assert.True(t, allIds["root"])
|
|
assert.True(t, allIds["second"])
|
|
}
|