@@ -28,6 +28,8 @@ const expectedError = {
28
28
29
29
ruleTester . run ( 'no-noninteractive-element-handlers' , rule , {
30
30
valid : [
31
+ { code : '<TestComponent onClick={doFoo} />' } ,
32
+ { code : '<Button onClick={doFoo} />' } ,
31
33
{ code : '<div />;' } ,
32
34
{ code : '<div className="foo" />;' } ,
33
35
{ code : '<div className="foo" {...props} />;' } ,
@@ -57,33 +59,36 @@ ruleTester.run('no-noninteractive-element-handlers', rule, {
57
59
{ code : '<input type="time" onClick={() => void 0} />' } ,
58
60
{ code : '<input type="url" onClick={() => void 0} />' } ,
59
61
{ code : '<input type="week" onClick={() => void 0} />' } ,
60
- /* End all flavors of input */
61
62
{ code : '<input type="hidden" onClick={() => void 0} />' } ,
63
+ /* End all flavors of input */
64
+ { code : '<a tabIndex="0" onClick={() => void 0} />' } ,
65
+ { code : '<a onClick={() => void 0} href="http://x.y.z" />' } ,
66
+ { code : '<a onClick={() => void 0} href="http://x.y.z" tabIndex="0" />' } ,
62
67
{ code : '<button onClick={() => void 0} className="foo" />' } ,
63
68
{ code : '<menuitem onClick={() => {}} />;' } ,
64
69
{ code : '<option onClick={() => void 0} className="foo" />' } ,
65
70
{ code : '<select onClick={() => void 0} className="foo" />' } ,
66
71
{ code : '<textarea onClick={() => void 0} className="foo" />' } ,
67
- { code : '<a tabIndex="0" onClick={() => void 0} />' } ,
68
- { code : '<a onClick={() => void 0} href="http://x.y.z" />' } ,
69
- { code : '<a onClick={() => void 0} href="http://x.y.z" tabIndex="0" />' } ,
70
- { code : '<input onClick={() => void 0} type="hidden" />;' } ,
71
- { code : '<form onClick={() => {}} />;' } ,
72
- { code : '<TestComponent onClick={doFoo} />' } ,
73
- { code : '<Button onClick={doFoo} />' } ,
72
+ { code : '<tr onClick={() => {}} />;' } ,
74
73
/* HTML elements attributed with an interactive role */
75
74
{ code : '<div role="button" onClick={() => {}} />;' } ,
76
75
{ code : '<div role="checkbox" onClick={() => {}} />;' } ,
77
76
{ code : '<div role="columnheader" onClick={() => {}} />;' } ,
78
77
{ code : '<div role="combobox" onClick={() => {}} />;' } ,
79
- { code : '<div role="form " onClick={() => {}} />;' } ,
78
+ { code : '<div role="grid " onClick={() => {}} />;' } ,
80
79
{ code : '<div role="gridcell" onClick={() => {}} />;' } ,
81
80
{ code : '<div role="link" onClick={() => {}} />;' } ,
81
+ { code : '<div role="listbox" onClick={() => {}} />;' } ,
82
+ { code : '<div role="menu" onClick={() => {}} />;' } ,
83
+ { code : '<div role="menubar" onClick={() => {}} />;' } ,
82
84
{ code : '<div role="menuitem" onClick={() => {}} />;' } ,
83
85
{ code : '<div role="menuitemcheckbox" onClick={() => {}} />;' } ,
84
86
{ code : '<div role="menuitemradio" onClick={() => {}} />;' } ,
85
87
{ code : '<div role="option" onClick={() => {}} />;' } ,
88
+ { code : '<div role="progressbar" onClick={() => {}} />;' } ,
86
89
{ code : '<div role="radio" onClick={() => {}} />;' } ,
90
+ { code : '<div role="radiogroup" onClick={() => {}} />;' } ,
91
+ { code : '<div role="row" onClick={() => {}} />;' } ,
87
92
{ code : '<div role="rowheader" onClick={() => {}} />;' } ,
88
93
{ code : '<div role="searchbox" onClick={() => {}} />;' } ,
89
94
{ code : '<div role="slider" onClick={() => {}} />;' } ,
@@ -105,6 +110,9 @@ ruleTester.run('no-noninteractive-element-handlers', rule, {
105
110
{ code : '<div role="sectionhead" onClick={() => {}} />;' } ,
106
111
{ code : '<div role="select" onClick={() => {}} />;' } ,
107
112
{ code : '<div role="structure" onClick={() => {}} />;' } ,
113
+ { code : '<div role="tablist" onClick={() => {}} />;' } ,
114
+ { code : '<div role="tree" onClick={() => {}} />;' } ,
115
+ { code : '<div role="treegrid" onClick={() => {}} />;' } ,
108
116
{ code : '<div role="widget" onClick={() => {}} />;' } ,
109
117
{ code : '<div role="window" onClick={() => {}} />;' } ,
110
118
] . map ( parserOptionsMapper ) ,
@@ -148,6 +156,7 @@ ruleTester.run('no-noninteractive-element-handlers', rule, {
148
156
{ code : '<figcaption onClick={() => {}} />;' , errors : [ expectedError ] } ,
149
157
{ code : '<font onClick={() => {}} />;' , errors : [ expectedError ] } ,
150
158
{ code : '<footer onClick={() => {}} />;' , errors : [ expectedError ] } ,
159
+ { code : '<form onClick={() => {}} />;' , errors : [ expectedError ] } ,
151
160
{ code : '<frameset onClick={() => {}} />;' , errors : [ expectedError ] } ,
152
161
{ code : '<head onClick={() => {}} />;' , errors : [ expectedError ] } ,
153
162
{ code : '<header onClick={() => {}} />;' , errors : [ expectedError ] } ,
@@ -235,7 +244,6 @@ ruleTester.run('no-noninteractive-element-handlers', rule, {
235
244
{ code : '<tbody onClick={() => {}} />;' , errors : [ expectedError ] } ,
236
245
{ code : '<tfoot onClick={() => {}} />;' , errors : [ expectedError ] } ,
237
246
{ code : '<thead onClick={() => {}} />;' , errors : [ expectedError ] } ,
238
- { code : '<tr onClick={() => {}} />;' , errors : [ expectedError ] } ,
239
247
{ code : '<ul onClick={() => {}} />;' , errors : [ expectedError ] } ,
240
248
/* HTML elements attributed with a non-interactive role */
241
249
{ code : '<div role="alert" onClick={() => {}} />;' , errors : [ expectedError ] } ,
@@ -252,38 +260,29 @@ ruleTester.run('no-noninteractive-element-handlers', rule, {
252
260
{ code : '<div role="document" onClick={() => {}} />;' , errors : [ expectedError ] } ,
253
261
{ code : '<div role="feed" onClick={() => {}} />;' , errors : [ expectedError ] } ,
254
262
{ code : '<div role="figure" onClick={() => {}} />;' , errors : [ expectedError ] } ,
255
- { code : '<div role="grid " onClick={() => {}} />;' , errors : [ expectedError ] } ,
263
+ { code : '<div role="form " onClick={() => {}} />;' , errors : [ expectedError ] } ,
256
264
{ code : '<div role="group" onClick={() => {}} />;' , errors : [ expectedError ] } ,
257
265
{ code : '<div role="heading" onClick={() => {}} />;' , errors : [ expectedError ] } ,
258
266
{ code : '<div role="img" onClick={() => {}} />;' , errors : [ expectedError ] } ,
259
267
{ code : '<div role="list" onClick={() => {}} />;' , errors : [ expectedError ] } ,
260
- { code : '<div role="listbox" onClick={() => {}} />;' , errors : [ expectedError ] } ,
261
268
{ code : '<div role="listitem" onClick={() => {}} />;' , errors : [ expectedError ] } ,
262
269
{ code : '<div role="log" onClick={() => {}} />;' , errors : [ expectedError ] } ,
263
270
{ code : '<div role="main" onClick={() => {}} />;' , errors : [ expectedError ] } ,
264
271
{ code : '<div role="marquee" onClick={() => {}} />;' , errors : [ expectedError ] } ,
265
272
{ code : '<div role="math" onClick={() => {}} />;' , errors : [ expectedError ] } ,
266
- { code : '<div role="menu" onClick={() => {}} />;' , errors : [ expectedError ] } ,
267
- { code : '<div role="menubar" onClick={() => {}} />;' , errors : [ expectedError ] } ,
268
273
{ code : '<div role="navigation" onClick={() => {}} />;' , errors : [ expectedError ] } ,
269
274
{ code : '<div role="note" onClick={() => {}} />;' , errors : [ expectedError ] } ,
270
- { code : '<div role="progressbar" onClick={() => {}} />;' , errors : [ expectedError ] } ,
271
- { code : '<div role="radiogroup" onClick={() => {}} />;' , errors : [ expectedError ] } ,
272
275
{ code : '<div role="region" onClick={() => {}} />;' , errors : [ expectedError ] } ,
273
- { code : '<div role="row" onClick={() => {}} />;' , errors : [ expectedError ] } ,
274
276
{ code : '<div role="rowgroup" onClick={() => {}} />;' , errors : [ expectedError ] } ,
275
277
{ code : '<div role="search" onClick={() => {}} />;' , errors : [ expectedError ] } ,
276
278
{ code : '<div role="separator" onClick={() => {}} />;' , errors : [ expectedError ] } ,
277
279
{ code : '<div role="scrollbar" onClick={() => {}} />;' , errors : [ expectedError ] } ,
278
280
{ code : '<div role="status" onClick={() => {}} />;' , errors : [ expectedError ] } ,
279
281
{ code : '<div role="table" onClick={() => {}} />;' , errors : [ expectedError ] } ,
280
- { code : '<div role="tablist" onClick={() => {}} />;' , errors : [ expectedError ] } ,
281
282
{ code : '<div role="tabpanel" onClick={() => {}} />;' , errors : [ expectedError ] } ,
282
283
{ code : '<div role="term" onClick={() => {}} />;' , errors : [ expectedError ] } ,
283
284
{ code : '<div role="timer" onClick={() => {}} />;' , errors : [ expectedError ] } ,
284
285
{ code : '<div role="toolbar" onClick={() => {}} />;' , errors : [ expectedError ] } ,
285
286
{ code : '<div role="tooltip" onClick={() => {}} />;' , errors : [ expectedError ] } ,
286
- { code : '<div role="tree" onClick={() => {}} />;' , errors : [ expectedError ] } ,
287
- { code : '<div role="treegrid" onClick={() => {}} />;' , errors : [ expectedError ] } ,
288
287
] . map ( parserOptionsMapper ) ,
289
288
} ) ;
0 commit comments