Skip to content

Commit

Permalink
feat(linter) add support for custom filenames in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
camc314 authored and Boshen committed Jan 9, 2024
1 parent 18d1c29 commit ee3c4ac
Show file tree
Hide file tree
Showing 9 changed files with 222 additions and 170 deletions.
75 changes: 40 additions & 35 deletions crates/oxc_linter/src/rules/jsx_a11y/aria_role.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,44 +192,49 @@ fn test() {
}

let pass = vec![
("<div />", None, None),
("<div></div>", None, None),
("<div role={role} />", None, None),
("<div role={role || 'button'} />", None, None),
("<div role={role || 'foobar'} />", None, None),
("<div role='tabpanel row' />", None, None),
("<div role='switch' />", None, None),
("<div role='doc-abstract' />", None, None),
("<div role='doc-appendix doc-bibliography' />", None, None),
("<Bar baz />", None, None),
("<img role='invalid-role' />", Some(allowed_invalid_roles()), None),
("<img role='invalid-role tabpanel' />", Some(allowed_invalid_roles()), None),
("<img role='invalid-role other-invalid-role' />", Some(allowed_invalid_roles()), None),
("<Foo role='bar' />", Some(ignore_non_dom_schema()), None),
("<fakeDOM role='bar' />", Some(ignore_non_dom_schema()), None),
("<img role='presentation' />", Some(ignore_non_dom_schema()), None),
("<Div role='button' />", None, Some(settings())),
("<Box asChild='div' role='button' />", None, Some(settings())),
("<svg role='graphics-document document' />", None, None),
("<div />", None, None, None),
("<div></div>", None, None, None),
("<div role={role} />", None, None, None),
("<div role={role || 'button'} />", None, None, None),
("<div role={role || 'foobar'} />", None, None, None),
("<div role='tabpanel row' />", None, None, None),
("<div role='switch' />", None, None, None),
("<div role='doc-abstract' />", None, None, None),
("<div role='doc-appendix doc-bibliography' />", None, None, None),
("<Bar baz />", None, None, None),
("<img role='invalid-role' />", Some(allowed_invalid_roles()), None, None),
("<img role='invalid-role tabpanel' />", Some(allowed_invalid_roles()), None, None),
(
"<img role='invalid-role other-invalid-role' />",
Some(allowed_invalid_roles()),
None,
None,
),
("<Foo role='bar' />", Some(ignore_non_dom_schema()), None, None),
("<fakeDOM role='bar' />", Some(ignore_non_dom_schema()), None, None),
("<img role='presentation' />", Some(ignore_non_dom_schema()), None, None),
("<Div role='button' />", None, Some(settings()), None),
("<Box asChild='div' role='button' />", None, Some(settings()), None),
("<svg role='graphics-document document' />", None, None, None),
];

let fail = vec![
("<div role='foobar' />", None, None),
("<div role='datepicker'></div>", None, None),
("<div role='range'></div>", None, None),
("<div role='Button'></div>", None, None),
("<div role='></div>", None, None),
("<div role='tabpanel row foobar'></div>", None, None),
("<div role='tabpanel row range'></div>", None, None),
("<div role='doc-endnotes range'></div>", None, None),
("<div role />", None, None),
("<div role='unknown-invalid-role' />", Some(allowed_invalid_roles()), None),
("<div role={null}></div>", None, None),
("<Foo role='datepicker' />", None, None),
("<Foo role='Button' />", None, None),
("<Div role='Button' />", None, Some(settings())),
("<Div role='Button' />", Some(ignore_non_dom_schema()), Some(settings())),
("<Box asChild='div' role='Button' />", None, None),
("<div role='foobar' />", None, None, None),
("<div role='datepicker'></div>", None, None, None),
("<div role='range'></div>", None, None, None),
("<div role='Button'></div>", None, None, None),
("<div role='></div>", None, None, None),
("<div role='tabpanel row foobar'></div>", None, None, None),
("<div role='tabpanel row range'></div>", None, None, None),
("<div role='doc-endnotes range'></div>", None, None, None),
("<div role />", None, None, None),
("<div role='unknown-invalid-role' />", Some(allowed_invalid_roles()), None, None),
("<div role={null}></div>", None, None, None),
("<Foo role='datepicker' />", None, None, None),
("<Foo role='Button' />", None, None, None),
("<Div role='Button' />", None, Some(settings()), None),
("<Div role='Button' />", Some(ignore_non_dom_schema()), Some(settings()), None),
("<Box asChild='div' role='Button' />", None, None, None),
];

Tester::new_with_settings(AriaRole::NAME, pass, fail).test_and_snapshot();
Expand Down
24 changes: 12 additions & 12 deletions crates/oxc_linter/src/rules/jsx_a11y/html_has_lang.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,21 +111,21 @@ fn test() {
}

let pass = vec![
(r"<div />;", None, None),
(r#"<html lang="en" />"#, None, None),
(r#"<html lang="en-US" />"#, None, None),
(r"<html lang={foo} />;", None, None),
(r"<html lang />;", None, None),
(r"<HTML />;", None, None),
("<HTMLTop lang='en' />", None, Some(settings())),
(r"<div />;", None, None, None),
(r#"<html lang="en" />"#, None, None, None),
(r#"<html lang="en-US" />"#, None, None, None),
(r"<html lang={foo} />;", None, None, None),
(r"<html lang />;", None, None, None),
(r"<HTML />;", None, None, None),
("<HTMLTop lang='en' />", None, Some(settings()), None),
];

let fail = vec![
(r"<html />;", None, None),
(r"<html {...props} />;", None, None),
(r"<html lang={undefined} />;", None, None),
(r#"<html lang="" />;"#, None, None),
("<HTMLTop />", None, Some(settings())),
(r"<html />;", None, None, None),
(r"<html {...props} />;", None, None, None),
(r"<html lang={undefined} />;", None, None, None),
(r#"<html lang="" />;"#, None, None, None),
("<HTMLTop />", None, Some(settings()), None),
];

Tester::new_with_settings(HtmlHasLang::NAME, pass, fail)
Expand Down
38 changes: 19 additions & 19 deletions crates/oxc_linter/src/rules/jsx_a11y/lang.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,28 +122,28 @@ fn test() {
}

let pass = vec![
("<div />;", None, None),
("<div foo='bar' />;", None, None),
("<div lang='foo' />;", None, None),
("<html lang='en' />", None, None),
("<html lang='en-US' />", None, None),
("<html lang='zh-Hans' />", None, None),
("<html lang='zh-Hant-HK' />", None, None),
("<html lang='zh-yue-Hant' />", None, None),
("<html lang='ja-Latn' />", None, None),
("<html lang={foo} />", None, None),
("<HTML lang='foo' />", None, None),
("<Foo lang={undefined} />", None, None),
("<Foo lang='en' />", None, Some(settings())),
("<Box as='html' lang='en' />", None, Some(settings())),
("<div />;", None, None, None),
("<div foo='bar' />;", None, None, None),
("<div lang='foo' />;", None, None, None),
("<html lang='en' />", None, None, None),
("<html lang='en-US' />", None, None, None),
("<html lang='zh-Hans' />", None, None, None),
("<html lang='zh-Hant-HK' />", None, None, None),
("<html lang='zh-yue-Hant' />", None, None, None),
("<html lang='ja-Latn' />", None, None, None),
("<html lang={foo} />", None, None, None),
("<HTML lang='foo' />", None, None, None),
("<Foo lang={undefined} />", None, None, None),
("<Foo lang='en' />", None, Some(settings()), None),
("<Box as='html' lang='en' />", None, Some(settings()), None),
];

let fail = vec![
("<html lang='foo' />", None, None),
("<html lang='zz-LL' />", None, None),
("<html lang={undefined} />", None, None),
("<Foo lang={undefined} />", None, Some(settings())),
("<Box as='html' lang='foo' />", None, Some(settings())),
("<html lang='foo' />", None, None, None),
("<html lang='zz-LL' />", None, None, None),
("<html lang={undefined} />", None, None, None),
("<Foo lang={undefined} />", None, Some(settings()), None),
("<Box as='html' lang='foo' />", None, Some(settings()), None),
];

Tester::new_with_settings(Lang::NAME, pass, fail).test_and_snapshot();
Expand Down
110 changes: 55 additions & 55 deletions crates/oxc_linter/src/rules/jsx_a11y/media_has_caption.rs
Original file line number Diff line number Diff line change
Expand Up @@ -200,64 +200,64 @@ fn test() {
}

let pass = vec![
(r"<div />;", None, None),
(r"<MyDiv />;", None, None),
(r"<audio><track kind='captions' /></audio>", None, None),
(r"<audio><track kind='Captions' /></audio>", None, None),
(r"<audio><track kind='Captions' /><track kind='subtitles' /></audio>", None, None),
(r"<video><track kind='captions' /></video>", None, None),
(r"<video><track kind='Captions' /></video>", None, None),
(r"<video><track kind='Captions' /><track kind='subtitles' /></video>", None, None),
(r"<audio muted={true}></audio>", None, None),
(r"<video muted={true}></video>", None, None),
(r"<video muted></video>", None, None),
(r"<Audio><track kind='captions' /></Audio>", Some(config()), None),
(r"<audio><Track kind='captions' /></audio>", Some(config()), None),
(r"<Video><track kind='captions' /></Video>", Some(config()), None),
(r"<video><Track kind='captions' /></video>", Some(config()), None),
(r"<Audio><Track kind='captions' /></Audio>", Some(config()), None),
(r"<Video><Track kind='captions' /></Video>", Some(config()), None),
(r"<Video muted></Video>", Some(config()), None),
(r"<Video muted={true}></Video>", Some(config()), None),
(r"<Audio muted></Audio>", Some(config()), None),
(r"<Audio muted={true}></Audio>", Some(config()), None),
(r"<Audio><track kind='captions' /></Audio>", None, Some(settings())),
(r"<audio><Track kind='captions' /></audio>", None, Some(settings())),
(r"<Video><track kind='captions' /></Video>", None, Some(settings())),
(r"<video><Track kind='captions' /></video>", None, Some(settings())),
(r"<Audio><Track kind='captions' /></Audio>", None, Some(settings())),
(r"<Video><Track kind='captions' /></Video>", None, Some(settings())),
(r"<Video muted></Video>", None, Some(settings())),
(r"<Video muted={true}></Video>", None, Some(settings())),
(r"<Audio muted></Audio>", None, Some(settings())),
(r"<Audio muted={true}></Audio>", None, Some(settings())),
(r"<Box as='audio' muted={true}></Box>", None, Some(settings())),
(r"<div />;", None, None, None),
(r"<MyDiv />;", None, None, None),
(r"<audio><track kind='captions' /></audio>", None, None, None),
(r"<audio><track kind='Captions' /></audio>", None, None, None),
(r"<audio><track kind='Captions' /><track kind='subtitles' /></audio>", None, None, None),
(r"<video><track kind='captions' /></video>", None, None, None),
(r"<video><track kind='Captions' /></video>", None, None, None),
(r"<video><track kind='Captions' /><track kind='subtitles' /></video>", None, None, None),
(r"<audio muted={true}></audio>", None, None, None),
(r"<video muted={true}></video>", None, None, None),
(r"<video muted></video>", None, None, None),
(r"<Audio><track kind='captions' /></Audio>", Some(config()), None, None),
(r"<audio><Track kind='captions' /></audio>", Some(config()), None, None),
(r"<Video><track kind='captions' /></Video>", Some(config()), None, None),
(r"<video><Track kind='captions' /></video>", Some(config()), None, None),
(r"<Audio><Track kind='captions' /></Audio>", Some(config()), None, None),
(r"<Video><Track kind='captions' /></Video>", Some(config()), None, None),
(r"<Video muted></Video>", Some(config()), None, None),
(r"<Video muted={true}></Video>", Some(config()), None, None),
(r"<Audio muted></Audio>", Some(config()), None, None),
(r"<Audio muted={true}></Audio>", Some(config()), None, None),
(r"<Audio><track kind='captions' /></Audio>", None, Some(settings()), None),
(r"<audio><Track kind='captions' /></audio>", None, Some(settings()), None),
(r"<Video><track kind='captions' /></Video>", None, Some(settings()), None),
(r"<video><Track kind='captions' /></video>", None, Some(settings()), None),
(r"<Audio><Track kind='captions' /></Audio>", None, Some(settings()), None),
(r"<Video><Track kind='captions' /></Video>", None, Some(settings()), None),
(r"<Video muted></Video>", None, Some(settings()), None),
(r"<Video muted={true}></Video>", None, Some(settings()), None),
(r"<Audio muted></Audio>", None, Some(settings()), None),
(r"<Audio muted={true}></Audio>", None, Some(settings()), None),
(r"<Box as='audio' muted={true}></Box>", None, Some(settings()), None),
];

let fail = vec![
(r"<audio><track /></audio>", None, None),
(r"<audio><track kind='subtitles' /></audio>", None, None),
(r"<audio />", None, None),
(r"<video><track /></video>", None, None),
(r"<video><track kind='subtitles' /></video>", None, None),
(r"<Audio muted={false}></Audio>", Some(config()), None),
(r"<Video muted={false}></Video>", Some(config()), None),
(r"<Audio muted={false}></Audio>", None, Some(settings())),
(r"<Video muted={false}></Video>", None, Some(settings())),
(r"<video />", None, None),
(r"<audio>Foo</audio>", None, None),
(r"<video>Foo</video>", None, None),
(r"<Audio />", Some(config()), None),
(r"<Video />", Some(config()), None),
(r"<Audio />", None, Some(settings())),
(r"<Video />", None, Some(settings())),
(r"<audio><Track /></audio>", Some(config()), None),
(r"<video><Track /></video>", Some(config()), None),
(r"<Audio><Track kind='subtitles' /></Audio>", Some(config()), None),
(r"<Video><Track kind='subtitles' /></Video>", Some(config()), None),
(r"<Audio><Track kind='subtitles' /></Audio>", None, Some(settings())),
(r"<Video><Track kind='subtitles' /></Video>", None, Some(settings())),
(r"<Box as='audio'><Track kind='subtitles' /></Box>", None, Some(settings())),
(r"<audio><track /></audio>", None, None, None),
(r"<audio><track kind='subtitles' /></audio>", None, None, None),
(r"<audio />", None, None, None),
(r"<video><track /></video>", None, None, None),
(r"<video><track kind='subtitles' /></video>", None, None, None),
(r"<Audio muted={false}></Audio>", Some(config()), None, None),
(r"<Video muted={false}></Video>", Some(config()), None, None),
(r"<Audio muted={false}></Audio>", None, Some(settings()), None),
(r"<Video muted={false}></Video>", None, Some(settings()), None),
(r"<video />", None, None, None),
(r"<audio>Foo</audio>", None, None, None),
(r"<video>Foo</video>", None, None, None),
(r"<Audio />", Some(config()), None, None),
(r"<Video />", Some(config()), None, None),
(r"<Audio />", None, Some(settings()), None),
(r"<Video />", None, Some(settings()), None),
(r"<audio><Track /></audio>", Some(config()), None, None),
(r"<video><Track /></video>", Some(config()), None, None),
(r"<Audio><Track kind='subtitles' /></Audio>", Some(config()), None, None),
(r"<Video><Track kind='subtitles' /></Video>", Some(config()), None, None),
(r"<Audio><Track kind='subtitles' /></Audio>", None, Some(settings()), None),
(r"<Video><Track kind='subtitles' /></Video>", None, Some(settings()), None),
(r"<Box as='audio'><Track kind='subtitles' /></Box>", None, Some(settings()), None),
];

Tester::new_with_settings(MediaHasCaption::NAME, pass, fail).test_and_snapshot();
Expand Down
38 changes: 19 additions & 19 deletions crates/oxc_linter/src/rules/jsx_a11y/no_autofocus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,28 +132,28 @@ fn test() {
}

let pass = vec![
("<div />;", None, None),
("<div autofocus />;", None, None),
("<input autofocus='true' />;", None, None),
("<Foo bar />", None, None),
("<Button />", None, None),
("<Foo autoFocus />", Some(config()), None),
("<div><div autofocus /></div>", Some(config()), None),
("<Button />", None, Some(settings())),
("<Button />", Some(config()), Some(settings())),
("<div />;", None, None, None),
("<div autofocus />;", None, None, None),
("<input autofocus='true' />;", None, None, None),
("<Foo bar />", None, None, None),
("<Button />", None, None, None),
("<Foo autoFocus />", Some(config()), None, None),
("<div><div autofocus /></div>", Some(config()), None, None),
("<Button />", None, Some(settings()), None),
("<Button />", Some(config()), Some(settings()), None),
];

let fail = vec![
("<div autoFocus />", None, None),
("<div autoFocus={true} />", None, None),
("<div autoFocus={false} />", None, None),
("<div autoFocus={undefined} />", None, None),
("<div autoFocus='true' />", None, None),
("<div autoFocus='false' />", None, None),
("<input autoFocus />", None, None),
("<Foo autoFocus />", None, None),
("<Button autoFocus />", None, None),
("<Button autoFocus />", Some(config()), Some(settings())),
("<div autoFocus />", None, None, None),
("<div autoFocus={true} />", None, None, None),
("<div autoFocus={false} />", None, None, None),
("<div autoFocus={undefined} />", None, None, None),
("<div autoFocus='true' />", None, None, None),
("<div autoFocus='false' />", None, None, None),
("<input autoFocus />", None, None, None),
("<Foo autoFocus />", None, None, None),
("<Button autoFocus />", None, None, None),
("<Button autoFocus />", Some(config()), Some(settings()), None),
];

Tester::new_with_settings(NoAutofocus::NAME, pass, fail).test_and_snapshot();
Expand Down
26 changes: 13 additions & 13 deletions crates/oxc_linter/src/rules/jsx_a11y/no_distracting_elements.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,22 +88,22 @@ fn test() {
}

let pass = vec![
(r"<div />", None, None),
(r"<Marquee />", None, None),
(r"<div marquee />", None, None),
(r"<Blink />", None, None),
(r"<div blink />", None, None),
(r"<div />", None, None, None),
(r"<Marquee />", None, None, None),
(r"<div marquee />", None, None, None),
(r"<Blink />", None, None, None),
(r"<div blink />", None, None, None),
];

let fail = vec![
(r"<marquee />", None, None),
(r"<marquee {...props} />", None, None),
(r"<marquee lang={undefined} />", None, None),
(r"<blink />", None, None),
(r"<blink {...props} />", None, None),
(r"<blink foo={undefined} />", None, None),
(r"<Blink />", Some(config()), Some(settings())),
(r"<Marquee />", Some(config()), Some(settings())),
(r"<marquee />", None, None, None),
(r"<marquee {...props} />", None, None, None),
(r"<marquee lang={undefined} />", None, None, None),
(r"<blink />", None, None, None),
(r"<blink {...props} />", None, None, None),
(r"<blink foo={undefined} />", None, None, None),
(r"<Blink />", Some(config()), Some(settings()), None),
(r"<Marquee />", Some(config()), Some(settings()), None),
];

Tester::new_with_settings(NoDistractingElements::NAME, pass, fail).test_and_snapshot();
Expand Down
Loading

0 comments on commit ee3c4ac

Please sign in to comment.