/* * Copyright The OpenTelemetry Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import * as assert from 'assert'; import { validateKey, validateValue, } from '../../../src/trace/internal/tracestate-validators'; describe('validators', function () { describe('validateKey', function () { const validKeysTestCases = [ 'abcdefghijklmnopqrstuvwxyz0123456789-_*/', 'baz-', 'baz_', 'baz*', 'baz*bar', 'baz/', 'tracestate', 'fw529a3039@dt', '6cab5bb-29a@dt', ]; validKeysTestCases.forEach(testCase => it(`returns true when key contains valid chars ${testCase}`, function () { assert.ok(validateKey(testCase), `${testCase} should be valid`); }) ); const invalidKeysTestCases = [ '1_key', 'kEy_1', 'k'.repeat(257), 'key,', 'TrAcEsTaTE', 'TRACESTATE', '', '6num', ]; invalidKeysTestCases.forEach(testCase => it(`returns true when key contains invalid chars ${testCase}`, function () { assert.ok(!validateKey(testCase), `${testCase} should be invalid`); }) ); }); describe('validateValue', function () { const validValuesTestCases = [ 'first second', 'baz*', 'baz$', 'baz@', 'first-second', 'baz~bar', 'test-v1:120', '-second', 'first.second', 'TrAcEsTaTE', 'TRACESTATE', ]; validValuesTestCases.forEach(testCase => it(`returns true when value contains valid chars ${testCase}`, function () { assert.ok(validateValue(testCase)); }) ); const invalidValuesTestCases = [ 'my_value=5', 'first,second', 'first ', 'k'.repeat(257), ',baz', 'baz,', 'baz=', '', ]; invalidValuesTestCases.forEach(testCase => it(`returns true when value contains invalid chars ${testCase}`, function () { assert.ok(!validateValue(testCase)); }) ); }); });