[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-wallet-webex] 06/07: idb: extend test case
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-wallet-webex] 06/07: idb: extend test case |
Date: |
Tue, 25 Jun 2019 14:32:01 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-webex.
commit df5619236b7328ce7cfb5d130948aa5200983919
Author: Florian Dold <address@hidden>
AuthorDate: Tue Jun 25 13:44:03 2019 +0200
idb: extend test case
---
packages/idb-bridge/src/MemoryBackend.test.ts | 17 +++++++++++++++++
packages/idb-bridge/src/MemoryBackend.ts | 11 ++++++++++-
packages/idb-bridge/src/tree/interfaces.ts | 2 +-
3 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/packages/idb-bridge/src/MemoryBackend.test.ts
b/packages/idb-bridge/src/MemoryBackend.test.ts
index 2e322dfa..c21c2d06 100644
--- a/packages/idb-bridge/src/MemoryBackend.test.ts
+++ b/packages/idb-bridge/src/MemoryBackend.test.ts
@@ -214,6 +214,23 @@ test("Spec: Example 1 Part 3", async t => {
cursor = request6.result;
t.is(cursor, null);
+
+ const request7 = index5.openCursor(null, "prevunique");
+ await promiseFromRequest(request7);
+ cursor = request7.result;
+ t.is(cursor.value.author, "Fred");
+ t.is(cursor.value.isbn, 234567);
+ cursor.continue();
+
+ await promiseFromRequest(request7);
+ cursor = request7.result;
+ t.is(cursor.value.author, "Barney");
+ cursor.continue();
+
+ await promiseFromRequest(request7);
+ cursor = request7.result;
+ t.is(cursor, null);
+
db.close();
t.pass();
diff --git a/packages/idb-bridge/src/MemoryBackend.ts
b/packages/idb-bridge/src/MemoryBackend.ts
index 786fa4cf..694daacf 100644
--- a/packages/idb-bridge/src/MemoryBackend.ts
+++ b/packages/idb-bridge/src/MemoryBackend.ts
@@ -640,7 +640,16 @@ export class MemoryBackend implements Backend {
objectStoreProperties.indexes.push(indexName);
schema.indexes[indexName] = indexProperties;
- // FIXME: build index from existing object store!
+ const objectStore = myConn.objectStoreMap[objectStoreName];
+ if (!objectStore) {
+ throw Error("object store does not exist");
+ }
+
+ const storeData = objectStore.modifiedData || objectStore.originalData;
+
+ storeData.forEach((v, k) => {
+ this.insertIntoIndex(newIndex, k, v.value, indexProperties);
+ });
}
async deleteRecord(
diff --git a/packages/idb-bridge/src/tree/interfaces.ts
b/packages/idb-bridge/src/tree/interfaces.ts
index c708c20b..6bd0cdf5 100644
--- a/packages/idb-bridge/src/tree/interfaces.ts
+++ b/packages/idb-bridge/src/tree/interfaces.ts
@@ -53,7 +53,7 @@ export interface IMapSource<K=any, V=any> extends
ISetSource<K>
/** Calls callbackFn once for each key-value pair present in the map object.
* The ES6 Map class sends the value to the callback before the key, so
* this interface must do likewise. */
- forEach(callbackFn: (v:V, k:K, map:IMapSource<K,V>) => void, thisArg: any):
void;
+ forEach(callbackFn: (v:V, k:K, map:IMapSource<K,V>) => void, thisArg?: any):
void;
/** Returns an iterator that provides all key-value pairs from the
collection (as arrays of length 2). */
entries(): IterableIterator<[K,V]>;
--
To stop receiving notification emails like this one, please contact
address@hidden.
- [GNUnet-SVN] [taler-wallet-webex] branch master updated (65eb8b96 -> bf52d4b8), gnunet, 2019/06/25
- [GNUnet-SVN] [taler-wallet-webex] 04/07: idb: memory backend fixes, gnunet, 2019/06/25
- [GNUnet-SVN] [taler-wallet-webex] 06/07: idb: extend test case,
gnunet <=
- [GNUnet-SVN] [taler-wallet-webex] 07/07: idb: make test pass, gnunet, 2019/06/25
- [GNUnet-SVN] [taler-wallet-webex] 05/07: idb: make unique cursor work, gnunet, 2019/06/25
- [GNUnet-SVN] [taler-wallet-webex] 03/07: idb: more tests working, gnunet, 2019/06/25
- [GNUnet-SVN] [taler-wallet-webex] 02/07: idb: tests working, gnunet, 2019/06/25
- [GNUnet-SVN] [taler-wallet-webex] 01/07: idb wip, gnunet, 2019/06/25