1
+ import { text } from '../lib/sitemap-xml' ;
2
+
3
+ describe ( 'text function' , ( ) => {
4
+ it ( 'should replace ampersand with &' , ( ) => {
5
+ const input = 'Hello & World' ;
6
+ const output = text ( input ) ;
7
+ expect ( output ) . toBe ( 'Hello & World' ) ;
8
+ } ) ;
9
+
10
+ it ( 'should replace less than sign with <' , ( ) => {
11
+ const input = 'Hello < World' ;
12
+ const output = text ( input ) ;
13
+ expect ( output ) . toBe ( 'Hello < World' ) ;
14
+ } ) ;
15
+
16
+ it . each ( [
17
+ [ '\u0000' , 'Hello \u0000 World' , 'Hello World' ] ,
18
+ [ '\u0008' , 'Hello \u0008 World' , 'Hello World' ] ,
19
+ [ '\u000B' , 'Hello \u000B World' , 'Hello World' ] ,
20
+ [ '\u000C' , 'Hello \u000C World' , 'Hello World' ] ,
21
+ [ '\u001F' , 'Hello \u001F World' , 'Hello World' ] ,
22
+ [ '\u007F' , 'Hello \u007F World' , 'Hello World' ] ,
23
+ [ '\u0084' , 'Hello \u0084 World' , 'Hello World' ] ,
24
+ [ '\u0086' , 'Hello \u0086 World' , 'Hello World' ] ,
25
+ [ '\u009F' , 'Hello \u009F World' , 'Hello World' ] ,
26
+ [ '\uD800' , 'Hello \uD800 World' , 'Hello World' ] ,
27
+ [ '\uDFFF' , 'Hello \uDFFF World' , 'Hello World' ] ,
28
+ [ '\uFDD0' , 'Hello \uFDD0 World' , 'Hello World' ] ,
29
+ [ '\uFDDF' , 'Hello \uFDDF World' , 'Hello World' ] ,
30
+ [ '\u{1FFFE}' , 'Hello \u{1FFFE} World' , 'Hello World' ] ,
31
+ [ '\u{1FFFF}' , 'Hello \u{1FFFF} World' , 'Hello World' ] ,
32
+ [ '\u{2FFFE}' , 'Hello \u{2FFFE} World' , 'Hello World' ] ,
33
+ [ '\u{2FFFF}' , 'Hello \u{2FFFF} World' , 'Hello World' ] ,
34
+ [ '\u{3FFFE}' , 'Hello \u{3FFFE} World' , 'Hello World' ] ,
35
+ [ '\u{3FFFF}' , 'Hello \u{3FFFF} World' , 'Hello World' ] ,
36
+ [ '\u{4FFFE}' , 'Hello \u{4FFFE} World' , 'Hello World' ] ,
37
+ [ '\u{4FFFF}' , 'Hello \u{4FFFF} World' , 'Hello World' ] ,
38
+ [ '\u{5FFFE}' , 'Hello \u{5FFFE} World' , 'Hello World' ] ,
39
+ [ '\u{5FFFF}' , 'Hello \u{5FFFF} World' , 'Hello World' ] ,
40
+ [ '\u{6FFFE}' , 'Hello \u{6FFFE} World' , 'Hello World' ] ,
41
+ [ '\u{6FFFF}' , 'Hello \u{6FFFF} World' , 'Hello World' ] ,
42
+ [ '\u{7FFFE}' , 'Hello \u{7FFFE} World' , 'Hello World' ] ,
43
+ [ '\u{7FFFF}' , 'Hello \u{7FFFF} World' , 'Hello World' ] ,
44
+ [ '\u{8FFFE}' , 'Hello \u{8FFFE} World' , 'Hello World' ] ,
45
+ [ '\u{8FFFF}' , 'Hello \u{8FFFF} World' , 'Hello World' ] ,
46
+ [ '\u{9FFFE}' , 'Hello \u{9FFFE} World' , 'Hello World' ] ,
47
+ [ '\u{9FFFF}' , 'Hello \u{9FFFF} World' , 'Hello World' ] ,
48
+ [ '\u{AFFFE}' , 'Hello \u{AFFFE} World' , 'Hello World' ] ,
49
+ [ '\u{AFFFF}' , 'Hello \u{AFFFF} World' , 'Hello World' ] ,
50
+ [ '\u{BFFFE}' , 'Hello \u{BFFFE} World' , 'Hello World' ] ,
51
+ [ '\u{BFFFF}' , 'Hello \u{BFFFF} World' , 'Hello World' ] ,
52
+ [ '\u{CFFFE}' , 'Hello \u{CFFFE} World' , 'Hello World' ] ,
53
+ [ '\u{CFFFF}' , 'Hello \u{CFFFF} World' , 'Hello World' ] ,
54
+ [ '\u{DFFFE}' , 'Hello \u{DFFFE} World' , 'Hello World' ] ,
55
+ [ '\u{DFFFF}' , 'Hello \u{DFFFF} World' , 'Hello World' ] ,
56
+ [ '\u{EFFFE}' , 'Hello \u{EFFFE} World' , 'Hello World' ] ,
57
+ [ '\u{EFFFF}' , 'Hello \u{EFFFF} World' , 'Hello World' ] ,
58
+ [ '\u{FFFFE}' , 'Hello \u{FFFFE} World' , 'Hello World' ] ,
59
+ [ '\u{FFFFF}' , 'Hello \u{FFFFF} World' , 'Hello World' ] ,
60
+ [ '\u{10FFFE}' , 'Hello \u{10FFFE} World' , 'Hello World' ] ,
61
+ [ '\u{10FFFF}' , 'Hello \u{10FFFF} World' , 'Hello World' ] ,
62
+ ] ) ( 'should remove invalid XML unicode character %s' , ( char , input , expected ) => {
63
+ const output = text ( input ) ;
64
+ expect ( output ) . toBe ( expected ) ;
65
+ } ) ;
66
+ } ) ;
0 commit comments