@qiwi/stdstream-snapshot
v1.2.9
Published
Util for CLI testing: fetch stdout, stderr streams and match data to snapshot
Downloads
18
Readme
@qiwi/stdstream-snapshot
Util for CLI testing: fetch stdout, stderr streams and match its data to snapshot
Install
yarn add @qiwi/stdstream-snapshot -D
npm add @qiwi/stdstream-snapshot -D
Snapshot
{
"stderr": "",
"stdout": "/rules/some-rules.ts\n 2:7 error 'name'...",
"err": {
"signal": null,
"code": 1,
"killed": false
}
}
Usage
With Jest:
import {generateSnapshot} from 'stdstream-snapshot'
it('cmd output matches to snapshot', async () => {
const cmd = 'somecmd --flag=foo -b'
const result = await generateSnapshot({
cmd,
})
expect(result).toMatchSnapshot()
})
With Jasmine or another test framework with no built-it snapshot API:
import {matchSnapshot} from 'stdstream-snapshot'
it('cmd output matches to snapshot', async () => {
const cmd = 'somecmd --flag=foo -b'
const target = './test/snapshots/some-cmd-output.json'
const result = await matchSnapshot({
cmd,
target,
update: !!process.env.UPDATE_SNAPSHOT
})
expect(result).toBe(true)
})
Options
There are several normalization steps supported out of box.
| Option | Description | Default |
|----------------------|----------------------------------------------------------------------------|---------|
| trim
| Removes redundant spaces from both ends of strings | true |
| normalizePaths
| Replaces process.cwd()
prefix from any found paths in the output strings | true |
| normalizeSpaces
| Converts tabs to double spaces | true |
| normalizeEncoding
| Replaces output rubbish like [8m [10m
| true |