-
Notifications
You must be signed in to change notification settings - Fork 239
Expand file tree
/
Copy pathstring.test.ts
More file actions
66 lines (56 loc) · 2.91 KB
/
string.test.ts
File metadata and controls
66 lines (56 loc) · 2.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import { describe, test, expect } from '@jest/globals';
import * as string from '#js/util/string.js';
describe('string functions', () => {
test('sortLength()', () => {
expect(['a', '', 'aaa', 'aa'].sort(string.sortLength)).toEqual(['aaa', 'aa', 'a', '']);
expect(['a', '', 'aaa', 'a', 'aa'].sort(string.sortLength)).toEqual(['aaa', 'aa', 'a', 'a', '']);
expect(['a', 'ccc', '', 'aaa', 'bb', 'aa', 'bbb'].sort(string.sortLength)).toEqual(
['aaa', 'bbb', 'ccc', 'aa', 'bb', 'a', '']
);
expect(['a'].sort(string.sortLength)).toEqual(['a']);
expect([].sort(string.sortLength)).toEqual([]);
});
test('quotePattern()', () => {
expect(string.quotePattern('[({.*+?^$-|:\\})]')).toBe('\\[\\(\\{\\.\\*\\+\\?\\^\\$\\-\\|\\:\\\\\\}\\)\\]');
});
test('unicodeChars()', () => {
expect(string.unicodeChars('aA\u00AA\u2212\uFFFD\u{1D410}')).toEqual([0x61, 0x41, 0xAA, 0x2212, 0xFFFD, 0x1D410]);
expect(string.unicodeChars('')).toEqual([]);
});
test('uncideString()', () => {
expect(string.unicodeString([0x61, 0x41, 0xAA, 0x2212, 0xFFFD, 0x1D410])).toBe('aA\u00AA\u2212\uFFFD\u{1D410}');
expect(string.unicodeString([])).toBe('');
});
test('isPercent()', () => {
expect(string.isPercent('10%')).toBe(true);
expect(string.isPercent('10 % ')).toBe(true);
expect(string.isPercent('10%10')).toBe(false);
});
test('split()', () => {
expect(string.split('a bbb cc')).toEqual(['a', 'bbb', 'cc']);
expect(string.split(' a bbb cc ')).toEqual(['a', 'bbb', 'cc']);
expect(string.split('abc')).toEqual(['abc']);
expect(string.split('')).toEqual(['']);
});
test('replaceUnicode()', () => {
expect(string.replaceUnicode(String.raw`\U0061`)).toBe('a');
expect(string.replaceUnicode(String.raw`a \U0062`)).toBe('a b');
expect(string.replaceUnicode(String.raw`\U{61}`)).toBe('a');
expect(string.replaceUnicode(String.raw`\U006D`)).toBe('m');
expect(string.replaceUnicode(String.raw`\U006d`)).toBe('m');
expect(string.replaceUnicode(String.raw`\U{6D}`)).toBe('m');
expect(string.replaceUnicode(String.raw`\U{6d}`)).toBe('m');
expect(string.replaceUnicode(String.raw`a \U{62} c`)).toBe('a b c');
expect(string.replaceUnicode(String.raw`\\U{61}`)).toBe(String.raw`\\U{61}`);
expect(string.replaceUnicode(String.raw`\\\U{61}`)).toBe(String.raw`\\a`);
expect(string.replaceUnicode(String.raw`\\\\U{61}`)).toBe(String.raw`\\\\U{61}`);
expect(string.replaceUnicode(String.raw`\\\\\U{61}`)).toBe(String.raw`\\\\a`);
expect(string.replaceUnicode(String.raw`x\\U{61}`)).toBe(String.raw`x\\U{61}`);
expect(string.replaceUnicode(String.raw`x\\\U{61}`)).toBe(String.raw`x\\a`);
expect(string.replaceUnicode(String.raw`x\\\\U{61}`)).toBe(String.raw`x\\\\U{61}`);
expect(string.replaceUnicode(String.raw`x\\\\\U{61}`)).toBe(String.raw`x\\\\a`);
});
test('toEntity()', () => {
expect(string.toEntity('\u200B')).toBe('​');
});
});