From 46e9abd33d311a46c882b17a5e8327eb41b245d1 Mon Sep 17 00:00:00 2001 From: Quinn Blenkinsop Date: Fri, 5 Oct 2018 15:14:08 -0700 Subject: [PATCH] Handle the type={truthy} case in jsx --- __tests__/src/util/implicitRoles/input-test.js | 3 +++ __tests__/src/util/implicitRoles/menuitem-test.js | 3 +++ src/util/implicitRoles/input.js | 2 +- src/util/implicitRoles/menuitem.js | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/__tests__/src/util/implicitRoles/input-test.js b/__tests__/src/util/implicitRoles/input-test.js index af9d9e340..2f2412be0 100644 --- a/__tests__/src/util/implicitRoles/input-test.js +++ b/__tests__/src/util/implicitRoles/input-test.js @@ -29,4 +29,7 @@ describe('isAbstractRole', () => { it('works for the default case', () => { expect(getImplicitRoleForInput([JSXAttributeMock('type', '')])).toBe('textbox'); }); + it('works for the true case', () => { + expect(getImplicitRoleForInput([JSXAttributeMock('type', true)])).toBe('textbox'); + }); }); diff --git a/__tests__/src/util/implicitRoles/menuitem-test.js b/__tests__/src/util/implicitRoles/menuitem-test.js index 6457f0e4e..c0c9f4755 100644 --- a/__tests__/src/util/implicitRoles/menuitem-test.js +++ b/__tests__/src/util/implicitRoles/menuitem-test.js @@ -16,4 +16,7 @@ describe('isAbstractRole', () => { it('works for non-toolbars', () => { expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', '')])).toBe(''); }); + it('works for the true case', () => { + expect(getImplicitRoleForMenuitem([JSXAttributeMock('type', true)])).toBe(''); + }); }); diff --git a/src/util/implicitRoles/input.js b/src/util/implicitRoles/input.js index b0b1e994d..bd2b452c1 100644 --- a/src/util/implicitRoles/input.js +++ b/src/util/implicitRoles/input.js @@ -9,7 +9,7 @@ export default function getImplicitRoleForInput(attributes) { if (type) { const value = getLiteralPropValue(type) || ''; - switch (value.toUpperCase()) { + switch (typeof value === 'string' && value.toUpperCase()) { case 'BUTTON': case 'IMAGE': case 'RESET': diff --git a/src/util/implicitRoles/menuitem.js b/src/util/implicitRoles/menuitem.js index e6e331f6a..e35cc953c 100644 --- a/src/util/implicitRoles/menuitem.js +++ b/src/util/implicitRoles/menuitem.js @@ -9,7 +9,7 @@ export default function getImplicitRoleForMenuitem(attributes) { if (type) { const value = getLiteralPropValue(type) || ''; - switch (value.toUpperCase()) { + switch (typeof value === 'string' && value.toUpperCase()) { case 'COMMAND': return 'menuitem'; case 'CHECKBOX':