diff --git a/src/__tests__/suggestions.js b/src/__tests__/suggestions.js
index 6f6deec0..581f3994 100644
--- a/src/__tests__/suggestions.js
+++ b/src/__tests__/suggestions.js
@@ -1,6 +1,6 @@
import {configure} from '../config'
-import {screen} from '..'
-import {renderIntoDocument} from './helpers/test-utils'
+import {screen, getSuggestedQuery} from '..'
+import {renderIntoDocument, render} from './helpers/test-utils'
beforeAll(() => {
configure({throwSuggestions: true})
@@ -307,3 +307,45 @@ test(`should suggest getByTitle`, () => {
// `getByText` will always be the suggested query as it is higher up the list.
expect(() => screen.getByTestId('svg')).toThrowError(/getByText\('Close'\)/)
})
+
+test('getSuggestedQuery handles `variant` and defaults to `get`', () => {
+ const button = render(``).container.firstChild
+
+ expect(getSuggestedQuery(button).toString()).toMatch(/getByRole/)
+ expect(getSuggestedQuery(button, 'get').toString()).toMatch(/getByRole/)
+ expect(getSuggestedQuery(button, 'getAll').toString()).toMatch(/getAllByRole/)
+ expect(getSuggestedQuery(button, 'query').toString()).toMatch(/queryByRole/)
+ expect(getSuggestedQuery(button, 'queryAll').toString()).toMatch(
+ /queryAllByRole/,
+ )
+ expect(getSuggestedQuery(button, 'find').toString()).toMatch(/findByRole/)
+ expect(getSuggestedQuery(button, 'findAll').toString()).toMatch(
+ /findAllByRole/,
+ )
+})
+
+test('getSuggestedQuery returns rich data for tooling', () => {
+ const button = render(``).container.firstChild
+
+ expect(getSuggestedQuery(button)).toMatchObject({
+ queryName: 'Role',
+ queryMethod: 'getByRole',
+ queryArgs: ['button', {name: /submit/i}],
+ variant: 'get',
+ })
+
+ expect(getSuggestedQuery(button).toString()).toEqual(
+ `getByRole('button', { name: /submit/i })`,
+ )
+
+ const div = render(`cancel`).container.firstChild
+
+ expect(getSuggestedQuery(div)).toMatchObject({
+ queryName: 'Text',
+ queryMethod: 'getByText',
+ queryArgs: ['cancel'],
+ variant: 'get',
+ })
+
+ expect(getSuggestedQuery(div).toString()).toEqual(`getByText('cancel')`)
+})