diff options
author | Igor Zinkovsky <igor@deno.com> | 2023-08-29 11:24:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-29 11:24:44 -0700 |
commit | 441b860978afd0160a459aee7e42ccc97263dc23 (patch) | |
tree | 34be6a90ed1a14849d76d87c1f07a443ba3a8039 /cli/tests | |
parent | c4451d307697ec05029f2645ab787e9d1981145e (diff) |
fix(ext/kv): don't panic if listening on queues and KV is not closed (#20317)
fixes #20312
Diffstat (limited to 'cli/tests')
-rw-r--r-- | cli/tests/integration/js_unit_tests.rs | 1 | ||||
-rw-r--r-- | cli/tests/unit/kv_queue_test_no_db_close.ts | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/cli/tests/integration/js_unit_tests.rs b/cli/tests/integration/js_unit_tests.rs index f54280b23..4bb2ef73b 100644 --- a/cli/tests/integration/js_unit_tests.rs +++ b/cli/tests/integration/js_unit_tests.rs @@ -46,6 +46,7 @@ util::unit_test_factory!( intl_test, io_test, kv_test, + kv_queue_test_no_db_close, kv_queue_undelivered_test, link_test, make_temp_test, diff --git a/cli/tests/unit/kv_queue_test_no_db_close.ts b/cli/tests/unit/kv_queue_test_no_db_close.ts new file mode 100644 index 000000000..e639574a3 --- /dev/null +++ b/cli/tests/unit/kv_queue_test_no_db_close.ts @@ -0,0 +1,25 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +import { + assert, + assertEquals, + assertNotEquals, + deferred, +} from "./test_util.ts"; + +Deno.test({ + sanitizeOps: false, + sanitizeResources: false, +}, async function queueTestNoDbClose() { + const db: Deno.Kv = await Deno.openKv(":memory:"); + const promise = deferred(); + let dequeuedMessage: unknown = null; + db.listenQueue((msg) => { + dequeuedMessage = msg; + promise.resolve(); + }); + const res = await db.enqueue("test"); + assert(res.ok); + assertNotEquals(res.versionstamp, null); + await promise; + assertEquals(dequeuedMessage, "test"); +}); |