diff --git a/packages/opentelemetry-exporter-jaeger/package.json b/packages/opentelemetry-exporter-jaeger/package.json index e24cf1368f..39dd6625a7 100644 --- a/packages/opentelemetry-exporter-jaeger/package.json +++ b/packages/opentelemetry-exporter-jaeger/package.json @@ -48,7 +48,7 @@ "codecov": "3.7.2", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "rimraf": "3.0.2", "ts-mocha": "7.0.0", diff --git a/packages/opentelemetry-exporter-zipkin/package.json b/packages/opentelemetry-exporter-zipkin/package.json index 57d002ea48..18d669e320 100644 --- a/packages/opentelemetry-exporter-zipkin/package.json +++ b/packages/opentelemetry-exporter-zipkin/package.json @@ -64,7 +64,7 @@ "karma-spec-reporter": "0.0.32", "karma-webpack": "4.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "rimraf": "3.0.2", "sinon": "9.0.2", diff --git a/packages/opentelemetry-plugin-http/package.json b/packages/opentelemetry-plugin-http/package.json index 2939ce8aaa..6aa4fb5cb4 100644 --- a/packages/opentelemetry-plugin-http/package.json +++ b/packages/opentelemetry-plugin-http/package.json @@ -60,7 +60,7 @@ "got": "9.6.0", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "request": "2.88.2", "request-promise-native": "1.0.9", diff --git a/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts b/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts index 60d34fa45c..5e213ef711 100644 --- a/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts +++ b/packages/opentelemetry-plugin-http/test/functionals/http-enable.test.ts @@ -606,80 +606,92 @@ describe('HttpPlugin', () => { } }); - it('should have 1 ended span when request is aborted', async () => { - nock(`${protocol}://my.server.com`) - .get('/') - .socketDelay(50) - .reply(200, ''); - - const promiseRequest = new Promise((resolve, reject) => { - const req = http.request( - `${protocol}://my.server.com`, - (resp: http.IncomingMessage) => { - let data = ''; - resp.on('data', chunk => { - data += chunk; - }); - resp.on('end', () => { - resolve(data); + describe('when request is aborted', () => { + describe('before the connection succeeds', () => { + it('should have 1 ended span', async () => { + nock(`${protocol}://my.server.com`) + .get('/') + .delayConnection(50) + .reply(200, ''); + + const promiseRequest = new Promise((resolve, reject) => { + const req = http.request( + `${protocol}://my.server.com`, + (resp: http.IncomingMessage) => { + let data = ''; + resp.on('data', chunk => { + data += chunk; + }); + resp.on('end', () => { + resolve(data); + }); + } + ); + req.setTimeout(10, () => { + req.abort(); + reject('timeout'); }); + return req.end(); + }); + + try { + await promiseRequest; + assert.fail(); + } catch (error) { + const spans = memoryExporter.getFinishedSpans(); + const [span] = spans; + assert.strictEqual(spans.length, 1); + assert.strictEqual(span.status.code, CanonicalCode.ABORTED); + assert.ok(Object.keys(span.attributes).length >= 6); } - ); - req.setTimeout(10, () => { - req.abort(); - reject('timeout'); }); - return req.end(); }); - try { - await promiseRequest; - assert.fail(); - } catch (error) { - const spans = memoryExporter.getFinishedSpans(); - const [span] = spans; - assert.strictEqual(spans.length, 1); - assert.strictEqual(span.status.code, CanonicalCode.ABORTED); - assert.ok(Object.keys(span.attributes).length >= 6); - } - }); + describe('after the response is received', () => { + let altServer: http.Server; + const altServerPort = 22346; - it('should have 1 ended span when request is aborted after receiving response', async () => { - nock(`${protocol}://my.server.com`) - .get('/') - .delay({ - body: 50, - }) - .replyWithFile(200, `${process.cwd()}/package.json`); + beforeEach(done => { + altServer = http.createServer((request, response) => { + response.write('First part of the response'); + setTimeout(() => response.end(), 50); + }); + altServer.listen(altServerPort, done); + }); - const promiseRequest = new Promise((resolve, reject) => { - const req = http.request( - `${protocol}://my.server.com`, - (resp: http.IncomingMessage) => { - let data = ''; - resp.on('data', chunk => { - req.abort(); - data += chunk; - }); - resp.on('end', () => { - resolve(data); - }); - } - ); + afterEach(() => { + altServer.close(); + }); - return req.end(); - }); + it('should have 1 ended span', async () => { + const promiseRequest = new Promise((resolve, reject) => { + const req = http.request( + `${protocol}://${hostname}:${altServerPort}`, + (resp: http.IncomingMessage) => { + resp.on('data', data => { + req.abort(); + }); + resp.on('close', () => { + resolve(); + }); + } + ); - try { - await promiseRequest; - assert.fail(); - } catch (error) { - const spans = memoryExporter.getFinishedSpans(); - const [span] = spans; - assert.strictEqual(spans.length, 1); - assert.strictEqual(span.status.code, CanonicalCode.ABORTED); - assert.ok(Object.keys(span.attributes).length > 7); - } + return req.end(); + }); + + try { + await promiseRequest; + assert.fail(); + } catch (error) { + const spans = memoryExporter.getFinishedSpans(); + const [span] = spans; + assert.strictEqual(spans.length, 1); + assert.strictEqual(span.status.code, CanonicalCode.ABORTED); + assert.ok(Object.keys(span.attributes).length > 7); + } + }); + }); }); it("should have 1 ended span when request doesn't listening response", done => { diff --git a/packages/opentelemetry-plugin-https/package.json b/packages/opentelemetry-plugin-https/package.json index c15cb07cc4..b3fe418ae7 100644 --- a/packages/opentelemetry-plugin-https/package.json +++ b/packages/opentelemetry-plugin-https/package.json @@ -59,7 +59,7 @@ "got": "9.6.0", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "request": "2.88.2", "request-promise-native": "1.0.9", diff --git a/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts b/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts index 22c459d6b1..6e94ebfa0f 100644 --- a/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts +++ b/packages/opentelemetry-plugin-https/test/functionals/https-enable.test.ts @@ -598,80 +598,98 @@ describe('HttpsPlugin', () => { } }); - it('should have 1 ended span when request is aborted', async () => { - nock(`${protocol}://my.server.com`) - .get('/') - .socketDelay(50) - .reply(200, ''); - - const promiseRequest = new Promise((resolve, reject) => { - const req = https.request( - `${protocol}://my.server.com`, - (resp: http.IncomingMessage) => { - let data = ''; - resp.on('data', chunk => { - data += chunk; - }); - resp.on('end', () => { - resolve(data); + describe('when request is aborted', () => { + describe('before the connection succeeds', () => { + it('should have 1 ended span', async () => { + nock(`${protocol}://my.server.com`) + .get('/') + .delayConnection(50) + .reply(200, ''); + + const promiseRequest = new Promise((resolve, reject) => { + const req = https.request( + `${protocol}://my.server.com`, + (resp: http.IncomingMessage) => { + let data = ''; + resp.on('data', chunk => { + data += chunk; + }); + resp.on('end', () => { + resolve(data); + }); + } + ); + req.setTimeout(10, () => { + req.abort(); + reject('timeout'); }); + return req.end(); + }); + + try { + await promiseRequest; + assert.fail(); + } catch (error) { + const spans = memoryExporter.getFinishedSpans(); + const [span] = spans; + assert.strictEqual(spans.length, 1); + assert.strictEqual(span.status.code, CanonicalCode.ABORTED); + assert.ok(Object.keys(span.attributes).length >= 6); } - ); - req.setTimeout(10, () => { - req.abort(); - reject('timeout'); }); - return req.end(); }); - try { - await promiseRequest; - assert.fail(); - } catch (error) { - const spans = memoryExporter.getFinishedSpans(); - const [span] = spans; - assert.strictEqual(spans.length, 1); - assert.strictEqual(span.status.code, CanonicalCode.ABORTED); - assert.ok(Object.keys(span.attributes).length >= 6); - } - }); + describe('after the response is received', () => { + let altServer: http.Server; + const altServerPort = 22346; + + beforeEach(done => { + altServer = https.createServer( + { + key: fs.readFileSync('test/fixtures/server-key.pem'), + cert: fs.readFileSync('test/fixtures/server-cert.pem'), + }, + (request, response) => { + response.write('First part of the response'); + setTimeout(() => response.end(), 50); + } + ); + altServer.listen(altServerPort, done); + }); - it('should have 1 ended span when request is aborted after receiving response', async () => { - nock(`${protocol}://my.server.com`) - .get('/') - .delay({ - body: 50, - }) - .replyWithFile(200, `${process.cwd()}/package.json`); + afterEach(() => { + altServer.close(); + }); - const promiseRequest = new Promise((resolve, reject) => { - const req = https.request( - `${protocol}://my.server.com`, - (resp: http.IncomingMessage) => { - let data = ''; - resp.on('data', chunk => { - req.abort(); - data += chunk; - }); - resp.on('end', () => { - resolve(data); - }); + it('should have 1 ended span', async () => { + const promiseRequest = new Promise((resolve, reject) => { + const req = https.request( + `${protocol}://${hostname}:${altServerPort}`, + (resp: http.IncomingMessage) => { + resp.on('data', data => { + req.abort(); + }); + resp.on('close', () => { + resolve(); + }); + } + ); + + return req.end(); + }); + + try { + await promiseRequest; + assert.fail(); + } catch (error) { + const spans = memoryExporter.getFinishedSpans(); + const [span] = spans; + assert.strictEqual(spans.length, 1); + assert.strictEqual(span.status.code, CanonicalCode.ABORTED); + assert.ok(Object.keys(span.attributes).length > 7); } - ); - - return req.end(); + }); }); - - try { - await promiseRequest; - assert.fail(); - } catch (error) { - const spans = memoryExporter.getFinishedSpans(); - const [span] = spans; - assert.strictEqual(spans.length, 1); - assert.strictEqual(span.status.code, CanonicalCode.ABORTED); - assert.ok(Object.keys(span.attributes).length > 7); - } }); it("should have 1 ended span when response is listened by using req.on('response')", done => { diff --git a/packages/opentelemetry-resource-detector-aws/package.json b/packages/opentelemetry-resource-detector-aws/package.json index b4d4a279c6..f9dd95446b 100644 --- a/packages/opentelemetry-resource-detector-aws/package.json +++ b/packages/opentelemetry-resource-detector-aws/package.json @@ -47,7 +47,7 @@ "codecov": "3.7.2", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "rimraf": "3.0.2", "sinon": "9.0.2", diff --git a/packages/opentelemetry-resource-detector-gcp/package.json b/packages/opentelemetry-resource-detector-gcp/package.json index 93b8c4337a..4417473817 100644 --- a/packages/opentelemetry-resource-detector-gcp/package.json +++ b/packages/opentelemetry-resource-detector-gcp/package.json @@ -48,7 +48,7 @@ "codecov": "3.7.2", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "rimraf": "3.0.2", "ts-mocha": "7.0.0", diff --git a/packages/opentelemetry-resources/package.json b/packages/opentelemetry-resources/package.json index 6f81c3ad1b..4b946e095b 100644 --- a/packages/opentelemetry-resources/package.json +++ b/packages/opentelemetry-resources/package.json @@ -51,7 +51,7 @@ "codecov": "3.7.2", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "rimraf": "3.0.2", "sinon": "9.0.3", diff --git a/packages/opentelemetry-sdk-node/package.json b/packages/opentelemetry-sdk-node/package.json index ad4bc3e3f3..04df82af09 100644 --- a/packages/opentelemetry-sdk-node/package.json +++ b/packages/opentelemetry-sdk-node/package.json @@ -50,8 +50,7 @@ "@opentelemetry/resource-detector-aws": "^0.11.0", "@opentelemetry/resource-detector-gcp": "^0.11.0", "@opentelemetry/resources": "^0.11.0", - "@opentelemetry/tracing": "^0.11.0", - "nock": "12.0.3" + "@opentelemetry/tracing": "^0.11.0" }, "devDependencies": { "@opentelemetry/context-async-hooks": "^0.11.0", @@ -64,6 +63,7 @@ "gts": "2.0.2", "istanbul-instrumenter-loader": "3.0.1", "mocha": "7.2.0", + "nock": "13.0.4", "nyc": "15.1.0", "semver": "7.3.2", "sinon": "9.0.3", diff --git a/packages/opentelemetry-semantic-conventions/package.json b/packages/opentelemetry-semantic-conventions/package.json index 2352b967a9..fc318e5940 100644 --- a/packages/opentelemetry-semantic-conventions/package.json +++ b/packages/opentelemetry-semantic-conventions/package.json @@ -47,7 +47,7 @@ "codecov": "3.7.2", "gts": "2.0.2", "mocha": "7.2.0", - "nock": "12.0.3", + "nock": "13.0.4", "nyc": "15.1.0", "rimraf": "3.0.2", "sinon": "9.0.3",