diff options
author | Heyang Zhou <zhy20000919@hotmail.com> | 2023-12-14 00:58:20 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-14 00:58:20 +0800 |
commit | 10ab8c1ef1ccc93bd810c5636e2a70bb7c37e91e (patch) | |
tree | 889605d974ed6d06ee74a44c624e7a1d7c986559 /cli/tests | |
parent | 76a6ea57753be420398d3eba8f313a6c98eab8c3 (diff) |
feat(unstable): append commit versionstamp to key (#21556)
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/unit/kv_test.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/cli/tests/unit/kv_test.ts b/cli/tests/unit/kv_test.ts index f46099ed1..28c913f21 100644 --- a/cli/tests/unit/kv_test.ts +++ b/cli/tests/unit/kv_test.ts @@ -2216,3 +2216,35 @@ dbTest("key watch", async (db) => { await work; await reader.cancel(); }); + +dbTest("set with key versionstamp suffix", async (db) => { + const result1 = await Array.fromAsync(db.list({ prefix: ["a"] })); + assertEquals(result1, []); + + const setRes1 = await db.set(["a", db.commitVersionstamp()], "b"); + assert(setRes1.ok); + assert(setRes1.versionstamp > ZERO_VERSIONSTAMP); + + const result2 = await Array.fromAsync(db.list({ prefix: ["a"] })); + assertEquals(result2.length, 1); + assertEquals(result2[0].key[1], setRes1.versionstamp); + assertEquals(result2[0].value, "b"); + assertEquals(result2[0].versionstamp, setRes1.versionstamp); + + const setRes2 = await db.atomic().set(["a", db.commitVersionstamp()], "c") + .commit(); + assert(setRes2.ok); + assert(setRes2.versionstamp > setRes1.versionstamp); + + const result3 = await Array.fromAsync(db.list({ prefix: ["a"] })); + assertEquals(result3.length, 2); + assertEquals(result3[1].key[1], setRes2.versionstamp); + assertEquals(result3[1].value, "c"); + assertEquals(result3[1].versionstamp, setRes2.versionstamp); + + await assertRejects( + async () => await db.set(["a", db.commitVersionstamp(), "a"], "x"), + TypeError, + "expected string, number, bigint, ArrayBufferView, boolean", + ); +}); |