diff --git a/eslint-suppressions.json b/eslint-suppressions.json index d6951a21011..a8b5d823be1 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -4484,6 +4484,11 @@ "count": 1 } }, + "public/app/plugins/panel/geomap/components/DebugOverlay.tsx": { + "@grafana/no-aria-label-selectors": { + "count": 1 + } + }, "public/app/plugins/panel/geomap/components/MarkersLegend.tsx": { "@typescript-eslint/consistent-type-assertions": { "count": 2 diff --git a/packages/grafana-eslint-rules/rules/no-aria-label-e2e-selectors.cjs b/packages/grafana-eslint-rules/rules/no-aria-label-e2e-selectors.cjs index 27ad2f2a4f2..45fae240f07 100644 --- a/packages/grafana-eslint-rules/rules/no-aria-label-e2e-selectors.cjs +++ b/packages/grafana-eslint-rules/rules/no-aria-label-e2e-selectors.cjs @@ -50,7 +50,7 @@ const rule = createRule({ (v) => v.type === 'ImportBinding' && v.parent.type === 'ImportDeclaration' && - v.parent.source.value === GRAFANA_E2E_PACKAGE_NAME + v.parent.source.value.startsWith(GRAFANA_E2E_PACKAGE_NAME) ); if (importDef) { diff --git a/packages/grafana-eslint-rules/tests/no-aria-label-e2e-selectors.test.js b/packages/grafana-eslint-rules/tests/no-aria-label-e2e-selectors.test.js index 60ef0a89644..3964cc8921e 100644 --- a/packages/grafana-eslint-rules/tests/no-aria-label-e2e-selectors.test.js +++ b/packages/grafana-eslint-rules/tests/no-aria-label-e2e-selectors.test.js @@ -19,12 +19,15 @@ const ruleTester = new RuleTester(); ruleTester.run('eslint no-aria-label-e2e-selector', noAriaLabelE2ESelector, { valid: [ { + name: 'direct aria-label usage', code: `
`, }, { + name: 'basic jsx expression container aria-label usage', code: `
`, }, { + name: 'imported from something else', code: ` import { someOtherImport } from './some-other-location'; @@ -34,9 +37,23 @@ import { someOtherImport } from './some-other-location'; ], invalid: [ { + name: 'imported from e2e-selectors package', code: ` import { selectors } from '@grafana/e2e-selectors'; +
+ `, + errors: [ + { + message: 'Use data-testid for E2E selectors instead of aria-label', + }, + ], + }, + { + name: 'imported from elsewhere in e2e-selectors package', + code: ` +import { selectors } from '@grafana/e2e-selectors/src'; +
`, errors: [