From 441b860978afd0160a459aee7e42ccc97263dc23 Mon Sep 17 00:00:00 2001 From: Igor Zinkovsky Date: Tue, 29 Aug 2023 11:24:44 -0700 Subject: fix(ext/kv): don't panic if listening on queues and KV is not closed (#20317) fixes #20312 --- cli/tests/integration/js_unit_tests.rs | 1 + cli/tests/unit/kv_queue_test_no_db_close.ts | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 cli/tests/unit/kv_queue_test_no_db_close.ts (limited to 'cli') 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"); +}); -- cgit v1.2.3