diff options
Diffstat (limited to 'packages/idb-bridge/src/util/getIndexKeys.test.ts')
-rw-r--r-- | packages/idb-bridge/src/util/getIndexKeys.test.ts | 24 |
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); + }); +}); |