diff --git a/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.test.ts b/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.test.ts new file mode 100644 index 00000000000..bf41aaa305d --- /dev/null +++ b/packages/cli-kit/src/public/node/vendor/otel-js/utils/validators.test.ts @@ -0,0 +1,24 @@ +import {isValidMetricName} from './validators.js' +import {diag} from '@opentelemetry/api' +import {describe, expect, test, vi} from 'vitest' + +describe('isValidMetricName', () => { + test('returns true for valid metric names', () => { + expect(isValidMetricName('valid_metric_name')).toBe(true) + expect(isValidMetricName('metric')).toBe(true) + expect(isValidMetricName('_metric')).toBe(true) + expect(isValidMetricName('METRIC_NAME')).toBe(true) + }) + + test('returns false and logs warning for invalid metric names', () => { + const diagSpy = vi.spyOn(diag, 'warn').mockImplementation(() => {}) + + expect(isValidMetricName('invalid-metric')).toBe(false) + expect(isValidMetricName('123metric')).toBe(false) + expect(isValidMetricName('metric.name')).toBe(false) + expect(isValidMetricName('metric@name')).toBe(false) + expect(isValidMetricName('metric name')).toBe(false) + + expect(diagSpy).toHaveBeenCalled() + }) +})