File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed
test/cases/global/common/string Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -58,6 +58,23 @@ describe('string tools', () => {
5858 expect ( replaceVariable ( 123 as any , { name : 'Ada' } ) ) . toBe ( 123 ) ;
5959 } ) ;
6060
61+ it ( 'should treat $ special characters in replacement value as literals' , ( ) => {
62+ // $1, $2 不应被解释为捕获组引用
63+ expect ( replaceVariable ( 'value: {{val}}' , { val : '$1' } ) ) . toBe ( 'value: $1' ) ;
64+ expect ( replaceVariable ( 'value: {{val}}' , { val : '$2' } ) ) . toBe ( 'value: $2' ) ;
65+ // $$ 不应被解释为字面量 $
66+ expect ( replaceVariable ( 'value: {{val}}' , { val : '$$' } ) ) . toBe ( 'value: $$' ) ;
67+ // $& 不应被替换为整个匹配字符串
68+ expect ( replaceVariable ( 'value: {{val}}' , { val : '$&' } ) ) . toBe ( 'value: $&' ) ;
69+ // $` 和 $' 不应被替换为匹配前/后的内容
70+ expect ( replaceVariable ( 'value: {{val}}' , { val : "$'" } ) ) . toBe ( "value: $'" ) ;
71+ expect ( replaceVariable ( 'value: {{val}}' , { val : '$`' } ) ) . toBe ( 'value: $`' ) ;
72+ // 混合场景
73+ expect ( replaceVariable ( 'result={{a}}&other={{b}}' , { a : '$1' , b : '$2' } ) ) . toBe (
74+ 'result=$1&other=$2'
75+ ) ;
76+ } ) ;
77+
6178 it ( 'should replace sensitive text' , ( ) => {
6279 expect ( replaceSensitiveText ( 'Visit https://example.com/path?x=1' ) ) . toBe ( 'Visit https://xxx' ) ;
6380 expect ( replaceSensitiveText ( 'token ns-abc-123 and ns-xyz' ) ) . toBe ( 'token xxx and xxx' ) ;
You can’t perform that action at this time.
0 commit comments