t.Run("WithWriteValidatorAndToken", func(t *testing.T) { t.Parallel() db, clean := createTestDB(t) defer clean() sks := "CAESQBDFk9kSKooTZrbjTYXSGQkaW0U/kCudBFaLHzm8wOxzRR3Y3rFv7qQ9E0Zhgi4vP+k0vPg7NIbDo/+Cc3snNS0=" skb, err := base64.StdEncoding.DecodeString(sks) checkErr(t, err) sk, err := crypto.UnmarshalPrivateKey(skb) checkErr(t, err) tok, err := db.connector.Net.GetToken(context.Background(), thread.NewLibp2pIdentity(sk)) checkErr(t, err) c, err := db.NewCollection(CollectionConfig{ Name: "Person", Schema: util.SchemaFromInstance(&Person{}, false), WriteValidator: ` return writer === 'bbaareicfdxmn5mlp52sd2e2gmgbc4lz75e2lz6b3gsdmhi77qjzxwjzvfu' `, }) checkErr(t, err) newPerson := util.JSONFromInstance(Person{Name: "Alice", Age: 42}) var res []core.InstanceID err = c.WriteTxn(func(txn *Txn) (err error) { res, err = txn.Create(newPerson) return }, WithTxnToken(tok)) checkErr(t, err) newPerson = util.JSONFromInstance(Person{ID: res[0], Name: "Alice", Age: 51}) err = c.WriteTxn(func(txn *Txn) (err error) { err = txn.Verify(newPerson) return }) if err == nil { t.Fatal("write should have been invalid") } newPerson = util.JSONFromInstance(Person{ID: res[0], Name: "Alice", Age: 43}) err = c.WriteTxn(func(txn *Txn) (err error) { err = txn.Verify(newPerson) return }, WithTxnToken(tok)) checkErr(t, err) })