diff --git a/src/__tests__/suggestions.js b/src/__tests__/suggestions.js index 1c1427be..c65962b1 100644 --- a/src/__tests__/suggestions.js +++ b/src/__tests__/suggestions.js @@ -6,6 +6,10 @@ beforeAll(() => { configure({throwSuggestions: true}) }) +afterEach(() => { + configure({testIdAttribute: 'data-testid'}) +}) + afterAll(() => { configure({throwSuggestions: false}) }) @@ -435,6 +439,34 @@ test('getSuggestedQuery can return specified methods in addition to the best', ( expect(getSuggestedQuery(button, 'get', 'TestId')).toBeUndefined() }) +test('getSuggestedQuery works with custom testIdAttribute', () => { + configure({testIdAttribute: 'data-test'}) + + const {container} = render(` + + + + `) + + const input = container.querySelector('input') + + expect(getSuggestedQuery(input, 'get', 'TestId')).toMatchObject({ + queryName: 'TestId', + queryMethod: 'getByTestId', + queryArgs: ['testid'], + variant: 'get', + }) +}) + test('getSuggestedQuery does not create suggestions for script and style elements', () => { const {container} = render(` diff --git a/src/suggestions.js b/src/suggestions.js index 6213f8c8..1a26a761 100644 --- a/src/suggestions.js +++ b/src/suggestions.js @@ -1,7 +1,7 @@ import {computeAccessibleName} from 'dom-accessibility-api' import {getDefaultNormalizer} from './matches' import {getNodeText} from './get-node-text' -import {DEFAULT_IGNORE_TAGS} from './config' +import {DEFAULT_IGNORE_TAGS, getConfig} from './config' import {getImplicitAriaRoles} from './role-helpers' const normalize = getDefaultNormalizer() @@ -120,7 +120,7 @@ export function getSuggestedQuery(element, variant = 'get', method) { return makeSuggestion('Title', title, {variant}) } - const testId = element.getAttribute('data-testid') + const testId = element.getAttribute(getConfig().testIdAttribute) if (canSuggest('TestId', method, testId)) { return makeSuggestion('TestId', testId, {variant}) }