-
Notifications
You must be signed in to change notification settings - Fork 467
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Test highlighting of
prettyDOM
explicitly (#1324)
- Loading branch information
Showing
11 changed files
with
201 additions
and
70 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
import {JSDOM} from 'jsdom' | ||
import {prettyDOM} from '../pretty-dom' | ||
|
||
function render(html) { | ||
const {window} = new JSDOM() | ||
const container = window.document.createElement('div') | ||
container.innerHTML = html | ||
return {container} | ||
} | ||
|
||
jest.mock('../get-user-code-frame') | ||
|
||
test('prettyDOM supports a COLORS environment variable', () => { | ||
const {container} = render('<div>Hello World!</div>') | ||
|
||
// process.env.COLORS is a string, so make sure we test it as such | ||
process.env.COLORS = 'false' | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
<div> | ||
<div> | ||
Hello World! | ||
</div> | ||
</div> | ||
`) | ||
|
||
process.env.COLORS = 'true' | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
[36m<div>[39m | ||
[36m<div>[39m | ||
[0mHello World![0m | ||
[36m</div>[39m | ||
[36m</div>[39m | ||
`) | ||
}) | ||
|
||
test('prettyDOM handles a COLORS env variable of unexpected object type by colorizing for node', () => { | ||
const {container} = render('<div>Hello World!</div>') | ||
|
||
const originalNodeVersion = process.versions.node | ||
process.env.COLORS = '{}' | ||
delete process.versions.node | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
<div> | ||
<div> | ||
Hello World! | ||
</div> | ||
</div> | ||
`) | ||
process.versions.node = '1.2.3' | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
[36m<div>[39m | ||
[36m<div>[39m | ||
[0mHello World![0m | ||
[36m</div>[39m | ||
[36m</div>[39m | ||
`) | ||
process.versions.node = originalNodeVersion | ||
}) | ||
|
||
test('prettyDOM handles a COLORS env variable of undefined by colorizing for node', () => { | ||
const {container} = render('<div>Hello World!</div>') | ||
|
||
const originalNodeVersion = process.versions.node | ||
process.env.COLORS = undefined | ||
delete process.versions.node | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
<div> | ||
<div> | ||
Hello World! | ||
</div> | ||
</div> | ||
`) | ||
process.versions.node = '1.2.3' | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
[36m<div>[39m | ||
[36m<div>[39m | ||
[0mHello World![0m | ||
[36m</div>[39m | ||
[36m</div>[39m | ||
`) | ||
process.versions.node = originalNodeVersion | ||
}) | ||
|
||
test('prettyDOM handles a COLORS env variable of empty string by colorizing for node', () => { | ||
const {container} = render('<div>Hello World!</div>') | ||
|
||
const originalNodeVersion = process.versions.node | ||
process.env.COLORS = '' | ||
delete process.versions.node | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
<div> | ||
<div> | ||
Hello World! | ||
</div> | ||
</div> | ||
`) | ||
process.versions.node = '1.2.3' | ||
expect(prettyDOM(container)).toMatchInlineSnapshot(` | ||
[36m<div>[39m | ||
[36m<div>[39m | ||
[0mHello World![0m | ||
[36m</div>[39m | ||
[36m</div>[39m | ||
`) | ||
process.versions.node = originalNodeVersion | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
import {getUserCodeFrame} from '../get-user-code-frame' | ||
import {logDOM} from '../pretty-dom' | ||
import {render} from './helpers/test-utils' | ||
|
||
jest.mock('../get-user-code-frame') | ||
|
||
beforeEach(() => { | ||
jest.spyOn(console, 'log').mockImplementation(() => {}) | ||
}) | ||
|
||
afterEach(() => { | ||
console.log.mockRestore() | ||
}) | ||
|
||
test('logDOM logs highlighted prettyDOM to the console', () => { | ||
const {container} = render('<div>Hello World!</div>') | ||
logDOM(container) | ||
expect(console.log).toHaveBeenCalledTimes(1) | ||
expect(console.log.mock.calls[0][0]).toMatchInlineSnapshot(` | ||
[36m<div>[39m | ||
[36m<div>[39m | ||
[0mHello World![0m | ||
[36m</div>[39m | ||
[36m</div>[39m | ||
`) | ||
}) | ||
|
||
test('logDOM logs highlighted prettyDOM with code frame to the console', () => { | ||
getUserCodeFrame.mockImplementationOnce( | ||
() => `"/home/john/projects/sample-error/error-example.js:7:14 | ||
5 | document.createTextNode('Hello World!') | ||
6 | ) | ||
> 7 | screen.debug() | ||
| ^ | ||
" | ||
`, | ||
) | ||
const {container} = render('<div>Hello World!</div>') | ||
logDOM(container) | ||
expect(console.log).toHaveBeenCalledTimes(1) | ||
expect(console.log.mock.calls[0][0]).toMatchInlineSnapshot(` | ||
[36m<div>[39m | ||
[36m<div>[39m | ||
[0mHello World![0m | ||
[36m</div>[39m | ||
[36m</div>[39m | ||
"/home/john/projects/sample-error/error-example.js:7:14 | ||
5 | document.createTextNode('Hello World!') | ||
6 | ) | ||
> 7 | screen.debug() | ||
| ^ | ||
" | ||
`) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters