Notes/apps/server/src/services/sanitize_attribute_name.spec.ts

38 lines
1.0 KiB
TypeScript
Raw Normal View History

2025-01-12 23:42:46 +01:00
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" ],
2025-01-09 18:07:02 +02:00
// numbers
[ "123456", "123456" ],
[ "123:456", "123:456" ],
[ "123456 abc", "123456_abc" ],
2025-01-09 18:07:02 +02:00
// non-latin characters
[ "ε", "ε" ],
[ "attribute ε", "attribute_ε" ],
2025-01-09 18:07:02 +02:00
// special characters
[ "test/name", "test_name" ],
[ "test%name", "test_name" ],
[ "\/", "_" ],
2025-01-09 18:07:02 +02:00
// empty string
[ "", "unnamed" ]
2025-01-09 18:07:02 +02:00
];
describe("sanitizeAttributeName unit tests", () => {
2025-01-09 18:07:02 +02:00
testCases.forEach((testCase) => {
return it(`'${testCase[0]}' should return '${testCase[1]}'`, () => {
const [ value, expected ] = testCase;
2025-01-09 18:07:02 +02:00
const actual = sanitizeAttributeName(value);
2025-01-12 23:42:46 +01:00
expect(actual).toStrictEqual(expected);
2025-01-09 18:07:02 +02:00
});
});
2025-03-02 20:47:57 +01:00
});