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})
}