Skip to content

Commit 322363e

Browse files
add polymorphicPropName to various tests
1 parent bf8f009 commit 322363e

File tree

5 files changed

+40
-2
lines changed

5 files changed

+40
-2
lines changed

__tests__/src/rules/accessible-emoji-test.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ ruleTester.run('accessible-emoji', rule, {
4545
},
4646
)).map(parserOptionsMapper),
4747
invalid: parsers.all([].concat(
48+
{
49+
code: '<Box as="input" type="hidden">🐼</Box>',
50+
settings: { 'jsx-a11y': { polymorphicPropName: 'as' } },
51+
},
52+
)).map(parserOptionsMapper),
53+
nvalid: parsers.all([].concat(
4854
{ code: '<span>🐼</span>', errors: [expectedError] },
4955
{ code: '<span>foo🐼bar</span>', errors: [expectedError] },
5056
{ code: '<span>foo 🐼 bar</span>', errors: [expectedError] },
@@ -53,5 +59,10 @@ ruleTester.run('accessible-emoji', rule, {
5359
{ code: '<Foo>🐼</Foo>', errors: [expectedError] },
5460
{ code: '<span aria-hidden="false">🐼</span>', errors: [expectedError] },
5561
{ code: '<CustomInput type="hidden">🐼</CustomInput>', errors: [expectedError] },
62+
{
63+
code: '<Box as="span">🐼</Box>',
64+
settings: { 'jsx-a11y': { polymorphicPropName: 'as' } },
65+
errors: [expectedError],
66+
},
5667
)).map(parserOptionsMapper),
5768
});

__tests__/src/rules/alt-text-test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ const inputImageError = {
5555

5656
const componentsSettings = {
5757
'jsx-a11y': {
58+
polymorphicPropName: 'as',
5859
components: {
5960
Input: 'input',
6061
},
@@ -132,6 +133,7 @@ ruleTester.run('alt-text', rule, {
132133
{ code: '<input type="image" alt={altText} />' },
133134
{ code: '<InputImage />' },
134135
{ code: '<Input type="image" alt="" />', settings: componentsSettings },
136+
{ code: '<SomeComponent as="input" type="image" alt="" />', settings: componentsSettings },
135137

136138
// CUSTOM ELEMENT TESTS FOR ARRAY OPTION TESTS
137139
{ code: '<Thumbnail alt="foo" />;', options: array },
@@ -195,6 +197,7 @@ ruleTester.run('alt-text', rule, {
195197
{ code: '<img aria-labelledby={undefined} />', errors: [ariaLabelledbyValueError] },
196198
{ code: '<img aria-label="" />', errors: [ariaLabelValueError] },
197199
{ code: '<img aria-labelledby="" />', errors: [ariaLabelledbyValueError] },
200+
{ code: '<SomeComponent as="img" aria-label="" />', settings: componentsSettings, errors: [ariaLabelValueError] },
198201

199202
// DEFAULT ELEMENT 'object' TESTS
200203
{ code: '<object />', errors: [objectError] },

__tests__/src/rules/aria-role-test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const ignoreNonDOMSchema = [{
5050

5151
const customDivSettings = {
5252
'jsx-a11y': {
53+
polymorphicPropName: 'asChild',
5354
components: {
5455
Div: 'div',
5556
},
@@ -79,6 +80,10 @@ ruleTester.run('aria-role', rule, {
7980
code: '<Div role="button" />',
8081
settings: customDivSettings,
8182
},
83+
{
84+
code: '<Box asChild="div" role="button" />',
85+
settings: customDivSettings,
86+
},
8287
{
8388
code: '<svg role="graphics-document document" />',
8489
},
@@ -105,5 +110,10 @@ ruleTester.run('aria-role', rule, {
105110
options: ignoreNonDOMSchema,
106111
settings: customDivSettings,
107112
},
113+
{
114+
code: '<Box asChild="div" role="Button" />',
115+
settings: customDivSettings,
116+
errors: [errorMessage],
117+
},
108118
)).concat(invalidTests).map(parserOptionsMapper),
109119
});

__tests__/src/rules/lang-test.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const expectedError = {
2525

2626
const componentsSettings = {
2727
'jsx-a11y': {
28+
polymorphicPropName: 'as',
2829
components: {
2930
Foo: 'html',
3031
},
@@ -46,11 +47,14 @@ ruleTester.run('lang', rule, {
4647
{ code: '<HTML lang="foo" />' },
4748
{ code: '<Foo lang={undefined} />' },
4849
{ code: '<Foo lang="en" />', settings: componentsSettings },
49-
)).map(parserOptionsMapper),
50+
{ code: '<Foo lang="en" />', settings: componentsSettings },
51+
{ code: '<Box as="html" lang="en" />', settings: componentsSettings },
52+
)).map(parserOptionsMapper),
5053
invalid: parsers.all([].concat(
5154
{ code: '<html lang="foo" />', errors: [expectedError] },
5255
{ code: '<html lang="zz-LL" />', errors: [expectedError] },
5356
{ code: '<html lang={undefined} />', errors: [expectedError] },
5457
{ code: '<Foo lang={undefined} />', settings: componentsSettings, errors: [expectedError] },
58+
{ code: '<Box as="html" lang="foo" />', settings: componentsSettings, errors: [expectedError] },
5559
)).map(parserOptionsMapper),
5660
});

__tests__/src/rules/media-has-caption-test.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const customSchema = [
3333

3434
const componentsSettings = {
3535
'jsx-a11y': {
36+
polymorphicPropName: 'as',
3637
components: {
3738
Audio: 'audio',
3839
Video: 'video',
@@ -144,7 +145,11 @@ ruleTester.run('media-has-caption', rule, {
144145
code: '<Audio muted={true}></Audio>',
145146
settings: componentsSettings,
146147
},
147-
)).map(parserOptionsMapper),
148+
{
149+
code: '<Box as="audio" muted={true}></Box>',
150+
settings: componentsSettings,
151+
},
152+
)).map(parserOptionsMapper),
148153
invalid: parsers.all([].concat(
149154
{ code: '<audio><track /></audio>', errors: [expectedError] },
150155
{
@@ -205,6 +210,11 @@ ruleTester.run('media-has-caption', rule, {
205210
code: '<Video><Track kind="subtitles" /></Video>',
206211
settings: componentsSettings,
207212
errors: [expectedError],
213+
},
214+
{
215+
code: '<Box as="audio"><Track kind="subtitles" /></Box>',
216+
settings: componentsSettings,
217+
errors: [expectedError],
208218
},
209219
)).map(parserOptionsMapper),
210220
});

0 commit comments

Comments
 (0)