From 7b3a94e58baa5ef7a3025fde3e1cc29db4c1e422 Mon Sep 17 00:00:00 2001 From: Naseem Date: Fri, 20 Dec 2019 19:37:39 -0500 Subject: [PATCH] test: pubsub --- .../test/ioredis.test.ts | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/packages/opentelemetry-plugin-ioredis/test/ioredis.test.ts b/packages/opentelemetry-plugin-ioredis/test/ioredis.test.ts index 5ba9aebac7..0277ac1e2b 100644 --- a/packages/opentelemetry-plugin-ioredis/test/ioredis.test.ts +++ b/packages/opentelemetry-plugin-ioredis/test/ioredis.test.ts @@ -275,6 +275,58 @@ describe('ioredis', () => { }); }); + it('should create a child span for pubsub', async () => { + const span = tracer.startSpan('test span'); + await tracer.withSpan(span, async () => { + try { + const pub = new ioredis(URL); + const sub = new ioredis(URL); + await sub.subscribe('news', 'music'); + await pub.publish('news', 'Hello world!'); + await pub.publish('music', 'Hello again!'); + await sub.unsubscribe('news', 'music'); + await sub.disconnect(); // No span + await pub.disconnect(); // No span + const endedSpans = memoryExporter.getFinishedSpans(); + assert.strictEqual(endedSpans.length, 9); + span.end(); + assert.strictEqual(endedSpans.length, 10); + const spanNames = [ + 'connect', + 'connect', + 'subscribe', + 'info', + 'info', + 'subscribe', + 'publish', + 'publish', + 'unsubscribe', + 'test span', + ]; + let i = 0; + while (i < 10) { + assert.strictEqual(endedSpans[i].name, spanNames[i]); + i++; + } + + const attributes = { + ...DEFAULT_ATTRIBUTES, + [AttributeNames.DB_STATEMENT]: 'subscribe news music', + }; + assertionUtils.assertSpan( + endedSpans[5], + SpanKind.CLIENT, + attributes, + [], + okStatus + ); + assertionUtils.assertPropagation(endedSpans[0], span); + } catch (error) { + assert.ifError(error); + } + }); + }); + it(`should create a child span for lua`, done => { const attributes = { ...DEFAULT_ATTRIBUTES,