@@ -25,6 +25,11 @@ const parserOptions = {
25
25
// ------------------------------------------------------------------------------
26
26
27
27
const ruleTester = new RuleTester ( { parserOptions} ) ;
28
+ const defaultErrors = [ {
29
+ message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
30
+ ' see https://mathiasbynens.github.io/rel-noopener'
31
+ } ] ;
32
+
28
33
ruleTester . run ( 'jsx-no-target-blank' , rule , {
29
34
valid : [
30
35
{ code : '<a href="foobar"></a>' } ,
@@ -38,61 +43,45 @@ ruleTester.run('jsx-no-target-blank', rule, {
38
43
{ code : '<a target="_blank" rel={relValue}></a>' } ,
39
44
{ code : '<a target={targetValue} rel="noopener noreferrer"></a>' } ,
40
45
{ code : '<a target={targetValue} href="relative/path"></a>' } ,
41
- { code : '<a target={targetValue} href="/absolute/path"></a>' }
46
+ { code : '<a target={targetValue} href="/absolute/path"></a>' } ,
47
+ {
48
+ code : '<a target="_blank" href={ dynamicLink }></a>' ,
49
+ options : [ { enforceDynamicLinks : 'never' } ]
50
+ }
42
51
] ,
43
52
invalid : [ {
44
53
code : '<a target="_blank" href="http://example.com"></a>' ,
45
- errors : [ {
46
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
47
- ' see https://mathiasbynens.github.io/rel-noopener'
48
- } ]
54
+ errors : defaultErrors
49
55
} , {
50
56
code : '<a target="_blank" rel="" href="http://example.com"></a>' ,
51
- errors : [ {
52
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
53
- ' see https://mathiasbynens.github.io/rel-noopener'
54
- } ]
57
+ errors : defaultErrors
55
58
} , {
56
59
code : '<a target="_blank" rel="noopenernoreferrer" href="http://example.com"></a>' ,
57
- errors : [ {
58
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
59
- ' see https://mathiasbynens.github.io/rel-noopener'
60
- } ]
60
+ errors : defaultErrors
61
61
} , {
62
62
code : '<a target="_BLANK" href="http://example.com"></a>' ,
63
- errors : [ {
64
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
65
- ' see https://mathiasbynens.github.io/rel-noopener'
66
- } ]
63
+ errors : defaultErrors
67
64
} , {
68
65
code : '<a target="_blank" href="//example.com"></a>' ,
69
- errors : [ {
70
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
71
- ' see https://mathiasbynens.github.io/rel-noopener'
72
- } ]
66
+ errors : defaultErrors
73
67
} , {
74
68
code : '<a target="_blank" href="//example.com" rel={true}></a>' ,
75
- errors : [ {
76
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
77
- ' see https://mathiasbynens.github.io/rel-noopener'
78
- } ]
69
+ errors : defaultErrors
79
70
} , {
80
71
code : '<a target="_blank" href="//example.com" rel={3}></a>' ,
81
- errors : [ {
82
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
83
- ' see https://mathiasbynens.github.io/rel-noopener'
84
- } ]
72
+ errors : defaultErrors
85
73
} , {
86
74
code : '<a target="_blank" href="//example.com" rel={null}></a>' ,
87
- errors : [ {
88
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
89
- ' see https://mathiasbynens.github.io/rel-noopener'
90
- } ]
75
+ errors : defaultErrors
91
76
} , {
92
77
code : '<a target="_blank" href="//example.com" rel></a>' ,
93
- errors : [ {
94
- message : 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
95
- ' see https://mathiasbynens.github.io/rel-noopener'
96
- } ]
78
+ errors : defaultErrors
79
+ } , {
80
+ code : '<a target="_blank" href={ dynamicLink }></a>' ,
81
+ errors : defaultErrors
82
+ } , {
83
+ code : '<a target="_blank" href={ dynamicLink }></a>' ,
84
+ options : [ { enforceDynamicLinks : 'always' } ] ,
85
+ errors : defaultErrors
97
86
} ]
98
87
} ) ;
0 commit comments