mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +08:00 
			
		
		
		
	
		
			
	
	
		
			43 lines
		
	
	
		
			1010 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1010 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | import sanitizeAttributeName from "../src/services/sanitize_attribute_name" | ||
|  | import { describe, it, execute, expect } from "./mini_test"; | ||
|  | 
 | ||
|  | // 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).toEqual(expected); | ||
|  |     }) | ||
|  |   }) | ||
|  | }) | ||
|  | 
 | ||
|  | execute() |