Skip to content
Snippets Groups Projects
Commit 330de490 authored by Jono Wenger's avatar Jono Wenger
Browse files

Merge remote-tracking branch 'origin/release' into project/adminCommands

# Conflicts:
#	indexedDb/channels/implementation.go
parents f0eca2ad 30832993
No related branches found
No related tags found
2 merge requests!60Revert "Fail a test to be sure it works",!32Admin Commands
......@@ -167,9 +167,9 @@ func (w *wasmModel) deleteMsgByChannel(channelID *id.ID) error {
// user of the API to filter such called by message ID.
func (w *wasmModel) ReceiveMessage(channelID *id.ID,
messageID cryptoChannel.MessageID, nickname, text string,
pubKey ed25519.PublicKey, codeset uint8,
timestamp time.Time, lease time.Duration, round rounds.Round,
mType channels.MessageType, status channels.SentStatus, hidden bool) uint64 {
pubKey ed25519.PublicKey, codeset uint8, timestamp time.Time,
lease time.Duration, round rounds.Round, mType channels.MessageType,
status channels.SentStatus, hidden bool) uint64 {
textBytes := []byte(text)
var err error
......@@ -183,9 +183,9 @@ func (w *wasmModel) ReceiveMessage(channelID *id.ID,
}
msgToInsert := buildMessage(
channelID.Marshal(), messageID.Bytes(), nil, nickname,
textBytes, pubKey, codeset, timestamp, lease, round.ID, mType,
false, hidden, status)
channelID.Marshal(), messageID.Bytes(), nil, nickname, textBytes,
pubKey, codeset, timestamp, lease, round.ID, mType, false, hidden,
status)
uuid, err := w.receiveHelper(msgToInsert, false)
if err != nil {
......@@ -219,9 +219,10 @@ func (w *wasmModel) ReceiveReply(channelID *id.ID,
}
}
msgToInsert := buildMessage(channelID.Marshal(), messageID.Bytes(),
replyTo.Bytes(), nickname, textBytes, pubKey, codeset, timestamp, lease,
round.ID, mType, false, hidden, status)
msgToInsert := buildMessage(
channelID.Marshal(), messageID.Bytes(), replyTo.Bytes(), nickname,
textBytes, pubKey, codeset, timestamp, lease, round.ID, mType, false,
hidden, status)
uuid, err := w.receiveHelper(msgToInsert, false)
......
......@@ -36,6 +36,32 @@ func TestMain(m *testing.M) {
func dummyCallback(uint64, *id.ID, bool) {}
// Happy path, insert message and look it up
func TestWasmModel_msgIDLookup(t *testing.T) {
testString := "test"
testMsgId := channel.MakeMessageID([]byte(testString), &id.ID{1})
eventModel, err := newWASMModel(testString, nil, dummyCallback)
if err != nil {
t.Fatalf("%+v", err)
}
testMsg := buildMessage([]byte(testString), testMsgId.Bytes(), nil,
testString, []byte(testString), []byte{8, 6, 7, 5}, 0, netTime.Now(),
time.Second, 0, 0, channels.Sent)
_, err = eventModel.receiveHelper(testMsg, false)
if err != nil {
t.Fatalf("%+v", err)
}
uuid, err := eventModel.msgIDLookup(testMsgId)
if err != nil {
t.Fatalf("%+v", err)
}
if uuid == 0 {
t.Fatalf("Expected to get a UUID!")
}
}
// Test wasmModel.UpdateSentStatus happy path and ensure fields don't change.
func Test_wasmModel_UpdateSentStatus(t *testing.T) {
testString := "test"
......
......@@ -211,7 +211,7 @@ func (w *wasmModel) hackTestDb() error {
if err != nil {
return err
}
if len(result) == 0 {
if result.IsUndefined() {
return errors.Errorf("Failed to test db, record not present")
}
return nil
......
......@@ -32,25 +32,25 @@ func NewContext() (context.Context, context.CancelFunc) {
}
// Get is a generic helper for getting values from the given [idb.ObjectStore].
func Get(db *idb.Database, objectStoreName string, key js.Value) (string, error) {
func Get(db *idb.Database, objectStoreName string, key js.Value) (js.Value, error) {
parentErr := errors.Errorf("failed to Get %s/%s", objectStoreName, key)
// Prepare the Transaction
txn, err := db.Transaction(idb.TransactionReadOnly, objectStoreName)
if err != nil {
return "", errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to create Transaction: %+v", err)
}
store, err := txn.ObjectStore(objectStoreName)
if err != nil {
return "", errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to get ObjectStore: %+v", err)
}
// Perform the operation
getRequest, err := store.Get(key)
if err != nil {
return "", errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to Get from ObjectStore: %+v", err)
}
......@@ -59,14 +59,14 @@ func Get(db *idb.Database, objectStoreName string, key js.Value) (string, error)
resultObj, err := getRequest.Await(ctx)
cancel()
if err != nil {
return "", errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to get from ObjectStore: %+v", err)
}
// Process result into string
resultStr := utils.JsToJson(resultObj)
jww.DEBUG.Printf("Got from %s/%s: %s", objectStoreName, key, resultStr)
return resultStr, nil
jww.DEBUG.Printf("Got from %s/%s: %s",
objectStoreName, key, utils.JsToJson(resultObj))
return resultObj, nil
}
// GetIndex is a generic helper for getting values from the given
......@@ -79,24 +79,24 @@ func GetIndex(db *idb.Database, objectStoreName string,
// Prepare the Transaction
txn, err := db.Transaction(idb.TransactionReadOnly, objectStoreName)
if err != nil {
return js.Value{}, errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to create Transaction: %+v", err)
}
store, err := txn.ObjectStore(objectStoreName)
if err != nil {
return js.Value{}, errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to get ObjectStore: %+v", err)
}
idx, err := store.Index(indexName)
if err != nil {
return js.Value{}, errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to get Index: %+v", err)
}
// Perform the operation
getRequest, err := idx.Get(key)
if err != nil {
return js.Value{}, errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to Get from ObjectStore: %+v", err)
}
......@@ -105,14 +105,13 @@ func GetIndex(db *idb.Database, objectStoreName string,
resultObj, err := getRequest.Await(ctx)
cancel()
if err != nil {
return js.Value{}, errors.WithMessagef(parentErr,
return js.Undefined(), errors.WithMessagef(parentErr,
"Unable to get from ObjectStore: %+v", err)
}
// Process result into string
resultStr := utils.JsToJson(resultObj)
jww.DEBUG.Printf("Got from %s/%s/%s: %s",
objectStoreName, indexName, key, resultStr)
objectStoreName, indexName, key, utils.JsToJson(resultObj))
return resultObj, nil
}
......@@ -143,7 +142,7 @@ func Put(db *idb.Database, objectStoreName string, value js.Value) (*idb.Request
return nil, errors.Errorf("Putting value failed: %+v", err)
}
jww.DEBUG.Printf("Successfully put value in %s: %v",
objectStoreName, value.String())
objectStoreName, utils.JsToJson(value))
return request, nil
}
......
......@@ -18,7 +18,7 @@ import (
)
// SEMVER is the current semantic version of xxDK WASM.
const SEMVER = "0.1.8"
const SEMVER = "0.1.9"
// Storage keys.
const (
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment