import { expect, describe, it } from "vitest"; import sanitizeAttributeName from "./sanitize_attribute_name.js"; // fn value, expected value const testCases: [fnValue: string, expectedValue: string][] = [ [ "testName", "testName" ], [ "test_name", "test_name" ], [ "test with space", "test_with_space" ], [ "test:with:colon", "test:with:colon" ], // numbers [ "123456", "123456" ], [ "123:456", "123:456" ], [ "123456 abc", "123456_abc" ], // non-latin characters [ "ε", "ε" ], [ "attribute ε", "attribute_ε" ], // special characters [ "test/name", "test_name" ], [ "test%name", "test_name" ], [ "\/", "_" ], // empty string [ "", "unnamed" ] ]; describe("sanitizeAttributeName unit tests", () => { testCases.forEach((testCase) => { return it(`'${testCase[0]}' should return '${testCase[1]}'`, () => { const [ value, expected ] = testCase; const actual = sanitizeAttributeName(value); expect(actual).toStrictEqual(expected); }); }); });