diff --git a/experimental/CHANGELOG.md b/experimental/CHANGELOG.md index 978d2194a0b..306703ee48a 100644 --- a/experimental/CHANGELOG.md +++ b/experimental/CHANGELOG.md @@ -35,6 +35,7 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2 * test(otlp-grpc-exporter-base): increase timeout in flaky test [#6042](https://github.com/open-telemetry/opentelemetry-js/pull/6042) @cjihrig * test(sdk-node): use process.env consistently in tests [#6052](https://github.com/open-telemetry/opentelemetry-js/pull/6052) @cjihrig +* test(sdk-node): ensure process.env is cleaned up between tests [#6066](https://github.com/open-telemetry/opentelemetry-js/pull/6066) @cjihrig ## 0.207.0 diff --git a/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts b/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts index 5ca09e9fb06..f3ced5ac8d5 100644 --- a/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts +++ b/experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts @@ -122,6 +122,14 @@ describe('Node SDK', () => { }); describe('Basic Registration', () => { + afterEach(function () { + delete process.env.OTEL_LOGS_EXPORTER; + delete process.env.OTEL_LOG_LEVEL; + delete process.env.OTEL_METRICS_EXPORTER; + delete process.env.OTEL_PROPAGATORS; + delete process.env.OTEL_TRACES_EXPORTER; + }); + it('should not register more than the minimal SDK components', async () => { // need to set these to none, since the deafult value is 'otlp' process.env.OTEL_TRACES_EXPORTER = 'none'; @@ -148,8 +156,6 @@ describe('Node SDK', () => { logsDelegate, 'logger provider should not have changed' ); - delete process.env.OTEL_TRACES_EXPORTER; - delete process.env.OTEL_METRICS_EXPORTER; await sdk.shutdown(); }); @@ -169,7 +175,6 @@ describe('Node SDK', () => { logLevel: DiagLogLevel.ERROR, }); - delete process.env.OTEL_LOG_LEVEL; sdk.shutdown(); }); @@ -222,7 +227,6 @@ describe('Node SDK', () => { const apiTracerProvider = trace.getTracerProvider() as ProxyTracerProvider; assert.ok(apiTracerProvider.getDelegate() instanceof NodeTracerProvider); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -302,7 +306,6 @@ describe('Node SDK', () => { assert.ok(metrics.getMeterProvider() instanceof MeterProvider); await sdk.shutdown(); - delete process.env.OTEL_TRACES_EXPORTER; }); it('should register a meter provider if multiple readers are provided', async () => { @@ -348,7 +351,6 @@ describe('Node SDK', () => { assert.strictEqual(sharedState.metricCollectors.length, 2); await sdk.shutdown(); - delete process.env.OTEL_TRACES_EXPORTER; }); it('should show deprecation warning when using metricReader option', async () => { @@ -380,7 +382,6 @@ describe('Node SDK', () => { assert.ok(metrics.getMeterProvider() instanceof MeterProvider); await sdk.shutdown(); - delete process.env.OTEL_TRACES_EXPORTER; }); it('should not show deprecation warning when using metricReaders option', async () => { @@ -412,7 +413,6 @@ describe('Node SDK', () => { assert.ok(metrics.getMeterProvider() instanceof MeterProvider); await sdk.shutdown(); - delete process.env.OTEL_TRACES_EXPORTER; }); it('should register a logger provider if a log record processor is provided', async () => { @@ -442,7 +442,6 @@ describe('Node SDK', () => { LoggerProvider ); await sdk.shutdown(); - delete process.env.OTEL_TRACES_EXPORTER; }); it('should register a logger provider if multiple log record processors are provided', async () => { @@ -527,7 +526,6 @@ describe('Node SDK', () => { assert.deepStrictEqual(propagation.fields(), ['b3']); await sdk.shutdown(); - delete process.env.OTEL_PROPAGATORS; }); it('should not register propagators OTEL_PROPAGATORS contains "none"', async () => { @@ -542,7 +540,6 @@ describe('Node SDK', () => { assert.deepStrictEqual(propagation.fields(), []); await sdk.shutdown(); - delete process.env.OTEL_PROPAGATORS; }); it('should not register propagators OTEL_PROPAGATORS contains "none" alongside valid propagator', async () => { @@ -557,7 +554,6 @@ describe('Node SDK', () => { assert.deepStrictEqual(propagation.fields(), []); await sdk.shutdown(); - delete process.env.OTEL_PROPAGATORS; }); it('should not register propagators OTEL_PROPAGATORS contains valid propagator but option is set to null', async () => { @@ -573,7 +569,6 @@ describe('Node SDK', () => { assert.deepStrictEqual(propagation.fields(), []); await sdk.shutdown(); - delete process.env.OTEL_PROPAGATORS; }); }); @@ -853,6 +848,11 @@ describe('Node SDK', () => { }); describe('configureServiceName', async () => { + afterEach(function () { + delete process.env.OTEL_RESOURCE_ATTRIBUTES; + delete process.env.OTEL_SERVICE_NAME; + }); + it('should configure service name via config', async () => { const sdk = new NodeSDK({ serviceName: 'config-set-name', @@ -878,7 +878,6 @@ describe('Node SDK', () => { assertServiceResource(resource, { name: 'env-set-name', }); - delete process.env.OTEL_SERVICE_NAME; await sdk.shutdown(); }); @@ -895,7 +894,6 @@ describe('Node SDK', () => { assertServiceResource(resource, { name: 'config-set-name', }); - delete process.env.OTEL_SERVICE_NAME; await sdk.shutdown(); }); @@ -912,7 +910,6 @@ describe('Node SDK', () => { name: 'resource-env-set-name', instanceId: 'my-instance-id', }); - delete process.env.OTEL_RESOURCE_ATTRIBUTES; await sdk.shutdown(); }); @@ -931,12 +928,16 @@ describe('Node SDK', () => { name: 'config-set-name', instanceId: 'my-instance-id', }); - delete process.env.OTEL_RESOURCE_ATTRIBUTES; await sdk.shutdown(); }); }); describe('configureServiceInstanceId', async () => { + afterEach(function () { + delete process.env.OTEL_NODE_RESOURCE_DETECTORS; + delete process.env.OTEL_RESOURCE_ATTRIBUTES; + }); + it('should configure service instance id via OTEL_RESOURCE_ATTRIBUTES env var', async () => { process.env.OTEL_RESOURCE_ATTRIBUTES = 'service.instance.id=627cc493,service.name=my-service,service.namespace'; @@ -950,7 +951,6 @@ describe('Node SDK', () => { name: 'my-service', instanceId: '627cc493', }); - delete process.env.OTEL_RESOURCE_ATTRIBUTES; await sdk.shutdown(); }); @@ -963,7 +963,6 @@ describe('Node SDK', () => { await resource.waitForAsyncAttributes?.(); assertServiceInstanceIdIsUUID(resource); - delete process.env.OTEL_NODE_RESOURCE_DETECTORS; await sdk.shutdown(); }); @@ -1239,6 +1238,8 @@ describe('Node SDK', () => { afterEach(() => { stubLogger.reset(); + delete process.env.OTEL_METRIC_EXPORT_INTERVAL; + delete process.env.OTEL_METRIC_EXPORT_TIMEOUT; delete process.env.OTEL_METRICS_EXPORTER; delete process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL; delete process.env.OTEL_EXPORTER_METRICS_PROTOCOL; @@ -1418,7 +1419,6 @@ describe('Node SDK', () => { it('should use otlp with http/protobuf and and use user defined flushing settings', async () => { process.env.OTEL_METRICS_EXPORTER = 'otlp'; - process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL = 'http/protobuf'; process.env.OTEL_METRIC_EXPORT_INTERVAL = '200'; process.env.OTEL_METRIC_EXPORT_TIMEOUT = '150'; delete process.env.OTEL_EXPORTER_OTLP_METRICS_PROTOCOL; @@ -1439,8 +1439,6 @@ describe('Node SDK', () => { 150 ); await sdk.shutdown(); - delete process.env.OTEL_METRIC_EXPORT_INTERVAL; - delete process.env.OTEL_METRIC_EXPORT_TIMEOUT; }); it('should use prometheus if that is set ', async () => { @@ -1477,6 +1475,9 @@ describe('Node SDK', () => { stubLoggerError = Sinon.stub(diag, 'warn'); }); afterEach(() => { + delete process.env.OTEL_EXPORTER_OTLP_PROTOCOL; + delete process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL; + delete process.env.OTEL_TRACES_EXPORTER; stubLoggerError.restore(); }); @@ -1538,7 +1539,6 @@ describe('Node SDK', () => { assert.ok(listOfProcessors.length === 1); assert.ok(listOfProcessors[0] instanceof BatchSpanProcessor); assert.ok(listOfProcessors[0]['_exporter'] instanceof OTLPTraceExporter); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1558,7 +1558,6 @@ describe('Node SDK', () => { assert.ok( listOfProcessors[0]['_exporter'] instanceof ConsoleSpanExporter ); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1574,8 +1573,6 @@ describe('Node SDK', () => { assert.ok( listOfProcessors[0]['_exporter'] instanceof OTLPGrpcTraceExporter ); - delete process.env.OTEL_TRACES_EXPORTER; - delete process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL; await sdk.shutdown(); }); @@ -1592,8 +1589,6 @@ describe('Node SDK', () => { assert.ok( listOfProcessors[0]['_exporter'] instanceof OTLPGrpcTraceExporter ); - delete process.env.OTEL_TRACES_EXPORTER; - delete process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL; await sdk.shutdown(); }); @@ -1614,7 +1609,6 @@ describe('Node SDK', () => { 'tracer provider should not have changed' ); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1653,7 +1647,6 @@ describe('Node SDK', () => { listOfProcessors[0]['_exporter'] instanceof OTLPProtoTraceExporter ); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1672,7 +1665,6 @@ describe('Node SDK', () => { 'Unable to set up trace exporter(s) due to invalid exporter and/or protocol values.' ); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1688,8 +1680,6 @@ describe('Node SDK', () => { assert.ok(listOfProcessors[0] instanceof BatchSpanProcessor); assert.ok(listOfProcessors[0]['_exporter'] instanceof ZipkinExporter); - delete process.env.OTEL_TRACES_EXPORTER; - delete process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL; await sdk.shutdown(); }); @@ -1709,8 +1699,6 @@ describe('Node SDK', () => { listOfProcessors[1]['_exporter'] instanceof OTLPGrpcTraceExporter ); - delete process.env.OTEL_TRACES_EXPORTER; - delete process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL; await sdk.shutdown(); }); @@ -1730,7 +1718,6 @@ describe('Node SDK', () => { assert.ok( listOfProcessors[1]['_exporter'] instanceof OTLPProtoTraceExporter ); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1746,7 +1733,6 @@ describe('Node SDK', () => { assert.ok( listOfProcessors[0]['_exporter'] instanceof ConsoleSpanExporter ); - delete process.env.OTEL_TRACES_EXPORTER; await sdk.shutdown(); }); @@ -1763,8 +1749,6 @@ describe('Node SDK', () => { assert.ok( listOfProcessors[0]['_exporter'] instanceof ConsoleSpanExporter ); - delete process.env.OTEL_TRACES_EXPORTER; - delete process.env.OTEL_EXPORTER_OTLP_TRACES_PROTOCOL; await sdk.shutdown(); }); });