From a51bbbd5a5c296bfccf4c55de2c0effca49214a9 Mon Sep 17 00:00:00 2001 From: Vera Reynolds Date: Thu, 8 Apr 2021 14:50:41 -0600 Subject: [PATCH] fix: await http response in AWS EKS detector (#2076) * previously missing await on a promise response * update tests to reflect current behavior Co-authored-by: Daniel Dyla --- .../src/detectors/AwsEksDetector.ts | 2 +- .../test/detectors/AwsEksDetector.test.ts | 28 ++++++++----------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/packages/opentelemetry-resource-detector-aws/src/detectors/AwsEksDetector.ts b/packages/opentelemetry-resource-detector-aws/src/detectors/AwsEksDetector.ts index 54c0f63bb6..3375ee7557 100644 --- a/packages/opentelemetry-resource-detector-aws/src/detectors/AwsEksDetector.ts +++ b/packages/opentelemetry-resource-detector-aws/src/detectors/AwsEksDetector.ts @@ -66,7 +66,7 @@ export class AwsEksDetector implements Detector { await AwsEksDetector.fileAccessAsync(this.K8S_TOKEN_PATH); const k8scert = await AwsEksDetector.readFileAsync(this.K8S_CERT_PATH); - if (!this._isEks(k8scert)) { + if (!(await this._isEks(k8scert))) { return Resource.empty(); } diff --git a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts index 0c57854072..06dc603824 100644 --- a/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts +++ b/packages/opentelemetry-resource-detector-aws/test/detectors/AwsEksDetector.test.ts @@ -247,8 +247,7 @@ describe('awsEksDetector', () => { }); describe('on unsuccesful request', () => { - it('should throw when receiving error response code', async () => { - const expectedError = new Error('EKS metadata api request timed out.'); + it('should return an empty resource when timed out', async () => { fileStub = sinon .stub(AwsEksDetector, 'fileAccessAsync' as any) .resolves(); @@ -265,17 +264,14 @@ describe('awsEksDetector', () => { .delayConnection(2500) .reply(200, () => mockedAwsAuth); - try { - await awsEksDetector.detect(); - } catch (err) { - assert.deepStrictEqual(err, expectedError); - } - + const resource: Resource = await awsEksDetector.detect(); scope.done(); - }); - it('should return an empty resource when timed out', async () => { - const expectedError = new Error('Failed to load page, status code: 404'); + assert.ok(resource); + assertEmptyResource(resource); + }).timeout(awsEksDetector.TIMEOUT_MS + 100); + + it('should return an empty resource when receiving error response code', async () => { fileStub = sinon .stub(AwsEksDetector, 'fileAccessAsync' as any) .resolves(); @@ -291,13 +287,11 @@ describe('awsEksDetector', () => { .matchHeader('Authorization', k8s_token) .reply(404, () => new Error()); - try { - await awsEksDetector.detect(); - } catch (err) { - assert.deepStrictEqual(err, expectedError); - } - + const resource: Resource = await awsEksDetector.detect(); scope.done(); + + assert.ok(resource); + assertEmptyResource(resource); }); }); });