Skip to content

Commit df1e275

Browse files
fix(mouse-event): remove check from custom elements
1 parent 99a4868 commit df1e275

File tree

2 files changed

+28
-8
lines changed

2 files changed

+28
-8
lines changed

__tests__/src/rules/mouse-events-have-key-events-test.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,35 @@ const mouseOutError = {
3131
ruleTester.run('mouse-events-have-key-events', rule, {
3232
valid: [
3333
{ code: '<div onMouseOver={() => void 0} onFocus={() => void 0} />;' },
34-
{
35-
code: '<div onMouseOver={() => void 0} onFocus={() => void 0} {...props} />;',
36-
},
34+
{ code: '<div onMouseOver={() => void 0} onFocus={() => void 0} {...props} />;' },
3735
{ code: '<div onMouseOver={handleMouseOver} onFocus={handleFocus} />;' },
38-
{
39-
code: '<div onMouseOver={handleMouseOver} onFocus={handleFocus} {...props} />;',
40-
},
36+
{ code: '<div onMouseOver={handleMouseOver} onFocus={handleFocus} {...props} />;' },
4137
{ code: '<div />;' },
38+
{ code: '<div onBlur={() => {}} />' },
39+
{ code: '<div onFocus={() => {}} />' },
4240
{ code: '<div onMouseOut={() => void 0} onBlur={() => void 0} />' },
4341
{ code: '<div onMouseOut={() => void 0} onBlur={() => void 0} {...props} />' },
4442
{ code: '<div onMouseOut={handleMouseOut} onBlur={handleOnBlur} />' },
4543
{ code: '<div onMouseOut={handleMouseOut} onBlur={handleOnBlur} {...props} />' },
44+
{ code: '<MyElement />' },
45+
{ code: '<MyElement onMouseOver={() => {}} />' },
46+
{ code: '<MyElement onMouseOut={() => {}} />' },
47+
{ code: '<MyElement onBlur={() => {}} />' },
48+
{ code: '<MyElement onFocus={() => {}} />' },
49+
{ code: '<MyElement onMouseOver={() => {}} {...props} />' },
50+
{ code: '<MyElement onMouseOut={() => {}} {...props} />' },
51+
{ code: '<MyElement onBlur={() => {}} {...props} />' },
52+
{ code: '<MyElement onFocus={() => {}} {...props} />' },
4653
].map(parserOptionsMapper),
4754
invalid: [
48-
{ code: '<div onMouseOver={() => void 0} />;', errors: [mouseOverError] },
49-
{ code: '<div onMouseOut={() => void 0} />', errors: [mouseOutError] },
55+
{
56+
code: '<div onMouseOver={() => void 0} />;',
57+
errors: [mouseOverError],
58+
},
59+
{
60+
code: '<div onMouseOut={() => void 0} />',
61+
errors: [mouseOutError],
62+
},
5063
{
5164
code: '<div onMouseOver={() => void 0} onFocus={undefined} />;',
5265
errors: [mouseOverError],

src/rules/mouse-events-have-key-events.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// Rule Definition
99
// ----------------------------------------------------------------------------
1010

11+
import { dom } from 'aria-query';
1112
import { getProp, getPropValue } from 'jsx-ast-utils';
1213
import { generateObjSchema } from '../util/schemas';
1314

@@ -26,6 +27,12 @@ module.exports = {
2627

2728
create: (context) => ({
2829
JSXOpeningElement: (node) => {
30+
const { name } = node.name;
31+
32+
if (!dom.get(name)) {
33+
return;
34+
}
35+
2936
const { attributes } = node;
3037

3138
// Check onmouseover / onfocus pairing.

0 commit comments

Comments
 (0)