UNPKG

@technobuddha/library

Version:
43 lines (35 loc) 1.47 kB
import { escapeJava } from './escape-java.ts'; import { space } from './unicode.ts'; describe('escapeJava', () => { test('should escape standard sequences', () => { expect(escapeJava('\b\f\n\r\t\\\'"')).toBe('\\b\\f\\n\\r\\t\\\\\\\'\\"'); }); test('should escape nul as \\0, unless followed by an octal digit', () => { expect(escapeJava('\0')).toBe('\\0'); expect(escapeJava('\0X')).toBe('\\0X'); expect(escapeJava('\u00000')).toBe('\\0000'); }); test('should not escape most ascii', () => { expect(escapeJava(space)).toBe(space); expect(escapeJava('ABCdef[~]')).toBe('ABCdef[~]'); }); // cspell:ignore unnnn test('should escape non printables as \\unnnn', () => { expect(escapeJava('\u0001')).toBe('\\u0001'); expect(escapeJava('\u001f')).toBe('\\u001f'); expect(escapeJava('\u007f')).toBe('\\u007f'); expect(escapeJava('\u00a0')).toBe('\\u00a0'); }); test('should mot escape latin-1 characters', () => { expect(escapeJava('¡¢£ýþÿ')).toBe('¡¢£ýþÿ'); }); test('should unicode escape BMP characters', () => { // cspell:ignore ΑΒΓΔΕΖ expect(escapeJava('ΑΒΓΔΕΖ')).toBe('\\u0391\\u0392\\u0393\\u0394\\u0395\\u0396'); }); test('should encode astral characters should be UTF-16 encoded', () => { expect(escapeJava('😀😁😂😺😸😹')).toBe( '\\ud83d\\ude00\\ud83d\\ude01\\ud83d\\ude02\\ud83d\\ude3a\\ud83d\\ude38\\ud83d\\ude39', ); }); });