@@ -6,12 +6,40 @@ const ruleTester = new RuleTester({
66 parserOptions : { ecmaVersion : 2022 , sourceType : 'module' } ,
77} ) ;
88ruleTester . run ( 'template-link-rel-noopener' , rule , {
9- valid : [ '<template><a href="/" target="_blank" rel="noopener noreferrer">Link</a></template>' ] ,
9+ valid : [
10+ '<template><a href="/" target="_blank" rel="noopener noreferrer">Link</a></template>' ,
11+ // reversed order
12+ '<template><a href="/" target="_blank" rel="noreferrer noopener">Link</a></template>' ,
13+ // with additional values
14+ '<template><a href="/" target="_blank" rel="nofollow noreferrer noopener">Link</a></template>' ,
15+ // no target="_blank" means no rel required
16+ '<template><a href="/">Link</a></template>' ,
17+ ] ,
1018 invalid : [
19+ // no rel attribute at all
1120 {
1221 code : '<template><a href="/" target="_blank">Link</a></template>' ,
1322 output : '<template><a href="/" target="_blank" rel="noopener noreferrer">Link</a></template>' ,
1423 errors : [ { messageId : 'missingRel' } ] ,
1524 } ,
25+ // rel="noopener" only — missing noreferrer
26+ {
27+ code : '<template><a href="/" target="_blank" rel="noopener">Link</a></template>' ,
28+ output : '<template><a href="/" target="_blank" rel="noopener noreferrer">Link</a></template>' ,
29+ errors : [ { messageId : 'missingRel' } ] ,
30+ } ,
31+ // rel="noreferrer" only — missing noopener
32+ {
33+ code : '<template><a href="/" target="_blank" rel="noreferrer">Link</a></template>' ,
34+ output : '<template><a href="/" target="_blank" rel="noopener noreferrer">Link</a></template>' ,
35+ errors : [ { messageId : 'missingRel' } ] ,
36+ } ,
37+ // rel="nofollow" — present but wrong values
38+ {
39+ code : '<template><a href="/" target="_blank" rel="nofollow">Link</a></template>' ,
40+ output :
41+ '<template><a href="/" target="_blank" rel="nofollow noopener noreferrer">Link</a></template>' ,
42+ errors : [ { messageId : 'missingRel' } ] ,
43+ } ,
1644 ] ,
1745} ) ;
0 commit comments