Skip to content
Snippets Groups Projects
Commit 92949d59 authored by Jake Taylor's avatar Jake Taylor
Browse files

made Get return js.Value, add unit test

parent 11cf8728
No related branches found
No related tags found
1 merge request!60Revert "Fail a test to be sure it works"
......@@ -293,7 +293,7 @@ func (w *wasmModel) UpdateSentStatus(uuid uint64,
// Extract the existing Message and update the Status
newMessage := &Message{}
err = json.Unmarshal([]byte(currentMsg), newMessage)
err = json.Unmarshal([]byte(utils.JsToJson(currentMsg)), newMessage)
if err != nil {
return
}
......
......@@ -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
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment