From d3fb2f3c20df2e258a27ba6efe1ab997f6568c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joost=20Z=C3=B6llner?= Date: Wed, 3 Oct 2018 00:17:15 +0200 Subject: [PATCH] Fix #437: Add undefined check before using toLowerCase (#507) --- src/reactA11yImageButtonHasAltRule.ts | 1 + src/tests/ReactA11yImageButtonHasAltRuleTests.ts | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/reactA11yImageButtonHasAltRule.ts b/src/reactA11yImageButtonHasAltRule.ts index c5c9ff978..412834ac2 100644 --- a/src/reactA11yImageButtonHasAltRule.ts +++ b/src/reactA11yImageButtonHasAltRule.ts @@ -59,6 +59,7 @@ class ReactA11yImageButtonHasAltWalker extends Lint.RuleWalker { if (!typeAttribute || typeAttribute.initializer === undefined || !isStringLiteral(typeAttribute.initializer) + || getStringLiteral(typeAttribute) === undefined || getStringLiteral(typeAttribute)!.toLowerCase() !== 'image') { return; } diff --git a/src/tests/ReactA11yImageButtonHasAltRuleTests.ts b/src/tests/ReactA11yImageButtonHasAltRuleTests.ts index ba6c83360..d6a4b6678 100644 --- a/src/tests/ReactA11yImageButtonHasAltRuleTests.ts +++ b/src/tests/ReactA11yImageButtonHasAltRuleTests.ts @@ -37,6 +37,16 @@ describe('reactA11yImageButtonHasAlt', (): void => { TestHelper.assertNoViolation(ruleName, script); }); + + it("when input element has an expression for its type thats undefined.", (): void => { + const script: string = ` + import React = require('react'); + const type = undefined; + const a = ; + `; + + TestHelper.assertNoViolation(ruleName, script); + }); }); describe('should fail', (): void => {