From 4126670ca283073c42e69e80e5fc95f1eaf95a92 Mon Sep 17 00:00:00 2001 From: Weyoss Date: Tue, 21 Nov 2023 00:32:58 +0100 Subject: [PATCH] test: fix unpredictable error throwing when deleting a namespace --- tests/tests/purging-queues/test00008.test.ts | 32 +++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/tests/tests/purging-queues/test00008.test.ts b/tests/tests/purging-queues/test00008.test.ts index d5d48cd0..0048ae71 100644 --- a/tests/tests/purging-queues/test00008.test.ts +++ b/tests/tests/purging-queues/test00008.test.ts @@ -12,7 +12,6 @@ import { createQueue, produceAndAcknowledgeMessage, } from '../../common/message-producing-consuming'; -import { shutDownBaseInstance } from '../../common/base-instance'; import { getNamespace } from '../../common/namespace'; import { getQueueMessages } from '../../common/queue-messages'; import { QueueNotEmptyError } from '../../../src/lib/queue/errors'; @@ -26,16 +25,14 @@ test('Combined: Fetching namespaces, deleting a namespace with its message queue ns: 'ns1', }; await createQueue(queueA, false); - const { consumer: c1, queue: q1 } = - await produceAndAcknowledgeMessage(queueA); + const { consumer: c1 } = await produceAndAcknowledgeMessage(queueA); const queueB: IQueueParams = { name: 'queue_b', ns: 'ns1', }; await createQueue(queueB, false); - const { consumer: c2, queue: q2 } = - await produceAndAcknowledgeMessage(queueB); + const { consumer: c2 } = await produceAndAcknowledgeMessage(queueB); const ns = await getNamespace(); @@ -43,42 +40,47 @@ test('Combined: Fetching namespaces, deleting a namespace with its message queue expect(m0).toEqual(['ns1']); const qm = await getQueueMessages(); - const m1 = await qm.countMessagesByStatusAsync(q1); + const m1 = await qm.countMessagesByStatusAsync(queueA); expect(m1.acknowledged).toBe(1); - const m2 = await qm.countMessagesByStatusAsync(q2); + const m2 = await qm.countMessagesByStatusAsync(queueB); expect(m2.acknowledged).toBe(1); + await c1.shutdownAsync(); + await c2.shutdownAsync(); + await expect(async () => { await ns.deleteAsync('ns1'); }).rejects.toThrow(QueueNotEmptyError); - await qm.purgeAsync(q1); + await qm.purgeAsync(queueA); await expect(async () => { await ns.deleteAsync('ns1'); - }).rejects.toThrow(QueueHasRunningConsumersError); + }).rejects.toThrow(QueueNotEmptyError); - await shutDownBaseInstance(c1); + await qm.purgeAsync(queueB); + await c1.runAsync(); + await c2.runAsync(); await expect(async () => { await ns.deleteAsync('ns1'); - }).rejects.toThrow(QueueNotEmptyError); + }).rejects.toThrow(QueueHasRunningConsumersError); - await qm.purgeAsync(q2); + await c1.shutdownAsync(); await expect(async () => { await ns.deleteAsync('ns1'); }).rejects.toThrow(QueueHasRunningConsumersError); - await shutDownBaseInstance(c2); + await c2.shutdownAsync(); await ns.deleteAsync('ns1'); - await expect(qm.countMessagesByStatusAsync(q1)).rejects.toThrow( + await expect(qm.countMessagesByStatusAsync(queueA)).rejects.toThrow( QueueNotFoundError, ); - await expect(qm.countMessagesByStatusAsync(q2)).rejects.toThrow( + await expect(qm.countMessagesByStatusAsync(queueB)).rejects.toThrow( QueueNotFoundError, );