Skip to content

Commit 170978b

Browse files
michaellaskyKent C. Dodds
authored andcommitted
fix: logRoles now actually logs its output to console. (#312)
* logRoles now logs its output to console. API is unchanged, logRoles will still return the same string, but now also logs to the console. #311 * logRoles no longer returns a string logRoles now simply calls console.log. * Added coverage for logRoles * Fixed logRoles tests, added serializer to test env Test now only mocks console.log once. jest-serializer-ansi is now added to tests/setup-env.js so all snapshots benefit from it.
1 parent 2846a8e commit 170978b

File tree

4 files changed

+18
-8
lines changed

4 files changed

+18
-8
lines changed

src/__tests__/__snapshots__/role-helpers.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3-
exports[`logRoles logs expected roles for various dom nodes 1`] = `
3+
exports[`logRoles calls console.log with output from prettyRoles 1`] = `
44
"region:
55
66
<section

src/__tests__/role-helpers.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import jestSerializerAnsi from 'jest-serializer-ansi'
21
import {getRoles, logRoles, getImplicitAriaRoles} from '../role-helpers'
32
import {render, cleanup} from './helpers/test-utils'
43

@@ -132,13 +131,18 @@ test('getRoles returns expected roles for various dom nodes', () => {
132131
})
133132
})
134133

135-
test('logRoles logs expected roles for various dom nodes', () => {
136-
expect.addSnapshotSerializer(jestSerializerAnsi)
137-
134+
test('logRoles calls console.log with output from prettyRoles', () => {
138135
const {section} = setup()
139-
const output = logRoles(section)
140136

141-
expect(output).toMatchSnapshot()
137+
jest.spyOn(console, 'log').mockImplementationOnce(() => {})
138+
139+
logRoles(section)
140+
// eslint-disable-next-line no-console
141+
expect(console.log).toHaveBeenCalledTimes(1)
142+
// eslint-disable-next-line no-console
143+
expect(console.log.mock.calls[0][0]).toMatchSnapshot()
144+
// eslint-disable-next-line no-console
145+
console.log.mockRestore()
142146
})
143147

144148
test('getImplicitAriaRoles returns expected roles for various dom nodes', () => {

src/role-helpers.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ function getRoles(container) {
7474
function logRoles(container) {
7575
const roles = getRoles(container)
7676

77-
return Object.entries(roles)
77+
const rolesStr = Object.entries(roles)
7878
.map(([role, elements]) => {
7979
const delimiterBar = '-'.repeat(50)
8080
const elementsString = elements
@@ -84,6 +84,9 @@ function logRoles(container) {
8484
return `${role}:\n\n${elementsString}\n\n${delimiterBar}`
8585
})
8686
.join('\n')
87+
88+
// eslint-disable-next-line no-console
89+
console.log(rolesStr)
8790
}
8891

8992
export {getRoles, logRoles, getImplicitAriaRoles}

tests/setup-env.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
import 'jest-dom/extend-expect'
2+
import jestSerializerAnsi from 'jest-serializer-ansi'
3+
4+
expect.addSnapshotSerializer(jestSerializerAnsi)

0 commit comments

Comments
 (0)