From 1fb156c2b544e0069c56a72a2f1909fe04850f6c Mon Sep 17 00:00:00 2001 From: Aman Mahajan Date: Wed, 3 Jan 2024 12:46:04 -0600 Subject: [PATCH] feat: toHaveAccessibleDescription supports aria-description (#565) --- README.md | 9 +++++++++ package.json | 2 +- .../to-have-accessible-description.js | 20 +++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fa0fced2..33961efb 100644 --- a/README.md +++ b/README.md @@ -594,6 +594,12 @@ make a partial match passing a regular expression, or by using aria-describedby="t1" /> The logo of Our Company +Company logo ``` ```js @@ -606,6 +612,9 @@ expect(getByTestId('logo')).not.toHaveAccessibleDescription('Company logo') expect(getByTestId('logo')).toHaveAccessibleDescription( 'The logo of Our Company', ) +expect(getByTestId('logo2')).toHaveAccessibleDescription( + 'The logo of Our Company', +) ```
diff --git a/package.json b/package.json index f5ab9a2b..1f6df712 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "aria-query": "^5.0.0", "chalk": "^3.0.0", "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", + "dom-accessibility-api": "^0.6.3", "lodash": "^4.17.15", "redent": "^3.0.0" }, diff --git a/src/__tests__/to-have-accessible-description.js b/src/__tests__/to-have-accessible-description.js index 49c7f20d..794d5645 100644 --- a/src/__tests__/to-have-accessible-description.js +++ b/src/__tests__/to-have-accessible-description.js @@ -57,6 +57,26 @@ describe('.toHaveAccessibleDescription', () => { }).toThrow(/expected element not to have accessible description/i) }) + it('works with aria-description attribute', () => { + const {queryByTestId} = render(` + Company logo + `) + + const logo = queryByTestId('logo') + expect(logo).not.toHaveAccessibleDescription('Company logo') + expect(logo).toHaveAccessibleDescription('The logo of Our Company') + expect(logo).toHaveAccessibleDescription(/logo of our company/i) + expect(logo).toHaveAccessibleDescription( + expect.stringContaining('logo of Our Company'), + ) + expect(() => { + expect(logo).toHaveAccessibleDescription("Our company's logo") + }).toThrow(/expected element to have accessible description/i) + expect(() => { + expect(logo).not.toHaveAccessibleDescription('The logo of Our Company') + }).toThrow(/expected element not to have accessible description/i) + }) + it('handles multiple ids', () => { const {queryByTestId} = render(`