Skip to content

Commit afdff92

Browse files
committed
Add tests to explicitly protect prettyDOM colorize true/false end results.
1 parent 0a8ad65 commit afdff92

File tree

1 file changed

+42
-1
lines changed

1 file changed

+42
-1
lines changed

src/__tests__/pretty-dom.js

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ test('prettyDOM can include all elements with a custom filter', () => {
155155

156156
test('prettyDOM supports a COLORS environment variable', () => {
157157
const {container} = render('<div>Hello World!</div>')
158-
159158
const noColors = prettyDOM(container, undefined, {highlight: false})
160159
const withColors = prettyDOM(container, undefined, {highlight: true})
161160

@@ -167,6 +166,48 @@ test('prettyDOM supports a COLORS environment variable', () => {
167166
expect(prettyDOM(container)).toEqual(withColors)
168167
})
169168

169+
test('prettyDOM handles a COLORS env variable of unexpected object type by colorizing for node', () => {
170+
const {container} = render('<div>Hello World!</div>')
171+
const noColors = prettyDOM(container, undefined, {highlight: false})
172+
const withColors = prettyDOM(container, undefined, {highlight: true})
173+
174+
const originalNodeVersion = process.versions.node
175+
process.env.COLORS = '{}'
176+
delete process.versions.node
177+
expect(prettyDOM(container)).toEqual(noColors)
178+
process.versions.node = '1.2.3'
179+
expect(prettyDOM(container)).toEqual(withColors)
180+
process.versions.node = originalNodeVersion
181+
})
182+
183+
test('prettyDOM handles a COLORS env variable of undefined by colorizing for node', () => {
184+
const {container} = render('<div>Hello World!</div>')
185+
const noColors = prettyDOM(container, undefined, {highlight: false})
186+
const withColors = prettyDOM(container, undefined, {highlight: true})
187+
188+
const originalNodeVersion = process.versions.node
189+
process.env.COLORS = undefined
190+
delete process.versions.node
191+
expect(prettyDOM(container)).toEqual(noColors)
192+
process.versions.node = '1.2.3'
193+
expect(prettyDOM(container)).toEqual(withColors)
194+
process.versions.node = originalNodeVersion
195+
})
196+
197+
test('prettyDOM handles a COLORS env variable of empty string by colorizing for node', () => {
198+
const {container} = render('<div>Hello World!</div>')
199+
const noColors = prettyDOM(container, undefined, {highlight: false})
200+
const withColors = prettyDOM(container, undefined, {highlight: true})
201+
202+
const originalNodeVersion = process.versions.node
203+
process.env.COLORS = ''
204+
delete process.versions.node
205+
expect(prettyDOM(container)).toEqual(noColors)
206+
process.versions.node = '1.2.3'
207+
expect(prettyDOM(container)).toEqual(withColors)
208+
process.versions.node = originalNodeVersion
209+
})
210+
170211
test('prettyDOM supports named custom elements', () => {
171212
window.customElements.define(
172213
'my-element-1',

0 commit comments

Comments
 (0)