aboutsummaryrefslogtreecommitdiff
path: root/packages/idb-bridge/src/util/getIndexKeys.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/idb-bridge/src/util/getIndexKeys.test.ts')
-rw-r--r--packages/idb-bridge/src/util/getIndexKeys.test.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/idb-bridge/src/util/getIndexKeys.test.ts b/packages/idb-bridge/src/util/getIndexKeys.test.ts
new file mode 100644
index 000000000..e1bc9dd00
--- /dev/null
+++ b/packages/idb-bridge/src/util/getIndexKeys.test.ts
@@ -0,0 +1,24 @@
+import test from "ava";
+import { getIndexKeys } from "./getIndexKeys";
+
+test("basics", (t) => {
+ t.deepEqual(getIndexKeys({foo: 42}, "foo", false), [42]);
+ t.deepEqual(getIndexKeys({foo: {bar: 42}}, "foo.bar", false), [42]);
+ t.deepEqual(getIndexKeys({foo: [42, 43]}, "foo.0", false), [42]);
+ t.deepEqual(getIndexKeys({foo: [42, 43]}, "foo.1", false), [43]);
+
+ t.deepEqual(getIndexKeys([1, 2, 3], "", false), [[1, 2, 3]]);
+
+ t.throws(() => {
+ getIndexKeys({foo: 42}, "foo.bar", false);
+ });
+
+ t.deepEqual(getIndexKeys({foo: 42}, "foo", true), [42]);
+ t.deepEqual(getIndexKeys({foo: 42, bar: 10}, ["foo", "bar"], true), [42, 10]);
+ t.deepEqual(getIndexKeys({foo: 42, bar: 10}, ["foo", "bar"], false), [[42, 10]]);
+ t.deepEqual(getIndexKeys({foo: 42, bar: 10}, ["foo", "bar", "spam"], true), [42, 10]);
+
+ t.throws(() => {
+ getIndexKeys({foo: 42, bar: 10}, ["foo", "bar", "spam"], false);
+ });
+});