mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 17:22:51 +08:00

* chore(eslint): bump all eslint related packages to latest * chore(eslint): update linting scripts work with v9 * chore(eslint): introduce flat config * chore(eslint): delete legacy configs * feat(grafana-eslint-rules): update rules to use eslint 9 APIs * chore(eslint): migrate all nested eslintrc files over to root config * chore(packages): bump eslint dependencies * feat(betterer): make it work with eslint 9 * style(grafana-data): remove non-existant ban-types rule from disable declarations * chore(wip): [wip] link eslint-config-grafana * chore(packages): add @eslint/compat * chore(eslint): add compat to testing library and fix alerting rules * chore(eslint): bump grafana eslint-config to v8 * chore(explore): delete legacy eslint config * chore: clean codeowners file, remove grafana/eslint-config from e2e plugins * test(eslint-rules): fix no-border-radius-literal and no-aria-label-e2e-selectors rule tests * Add .js to prettier checks so new eslint.config.js file isn't missed * chore(eslint): move emotion/syntax-preference to grafana/defaults * test(eslint): use core-js structured-clone * revert(services): undo merge backend-format githook changes * test(eslint-rules): remove structured-clone polyfill from tests * chore(eslint): add back public/lib/monaco to ignore list, sort alphabetically * chore(e2e-plugins): remove eslint config 7 from plugins package.json --------- Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
50 lines
974 B
JavaScript
50 lines
974 B
JavaScript
import { RuleTester } from 'eslint';
|
|
|
|
import noAriaLabelE2ESelector from '../rules/no-aria-label-e2e-selectors.cjs';
|
|
|
|
RuleTester.setDefaultConfig({
|
|
languageOptions: {
|
|
ecmaVersion: 2018,
|
|
sourceType: 'module',
|
|
parserOptions: {
|
|
ecmaFeatures: {
|
|
jsx: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
const ruleTester = new RuleTester();
|
|
|
|
ruleTester.run('eslint no-aria-label-e2e-selector', noAriaLabelE2ESelector, {
|
|
valid: [
|
|
{
|
|
code: `<div aria-label="foo" />`,
|
|
},
|
|
{
|
|
code: `<div aria-label={"foo"} />`,
|
|
},
|
|
{
|
|
code: `
|
|
import { someOtherImport } from './some-other-location';
|
|
|
|
<div aria-label={someOtherImport} />
|
|
`,
|
|
},
|
|
],
|
|
invalid: [
|
|
{
|
|
code: `
|
|
import { selectors } from '@grafana/e2e-selectors';
|
|
|
|
<div aria-label={selectors.pages.AddDashboard.addNewPanel} />
|
|
`,
|
|
errors: [
|
|
{
|
|
message: 'Use data-testid for E2E selectors instead of aria-label',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
});
|