Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ttmarek/consolemock
A tool for testing console logs
https://github.com/ttmarek/consolemock
javascript javascript-library jest testing-tools
Last synced: 9 days ago
JSON representation
A tool for testing console logs
- Host: GitHub
- URL: https://github.com/ttmarek/consolemock
- Owner: ttmarek
- License: mit
- Created: 2017-03-08T22:24:47.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T09:43:48.000Z (almost 2 years ago)
- Last Synced: 2024-04-24T13:44:45.444Z (7 months ago)
- Topics: javascript, javascript-library, jest, testing-tools
- Language: JavaScript
- Homepage:
- Size: 486 KB
- Stars: 101
- Watchers: 3
- Forks: 5
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-list - consolemock
README
A tool for testing console logs## Installation
with yarn
```
yarn add --dev consolemock
```or with npm
```
npm install --save-dev consolemock
```## API
```js
import makeConsoleMock from 'consolemock';console = makeConsoleMock();
``````js
console.log('a message');
console.group('a group');
console.info('maybe an object?', { a: 'str', b: false, c: [1, 2, 3], d: { a: 'b' } });
console.warn('something useful');
console.error('something unexpected');
console.group('%c a nested group with styling', 'color: #1da1f2; font-weight: bold;');
console.log('%c a nested log with styling', 'color: #D63230;');
console.groupEnd();
console.log('almost done');
console.groupEnd();
console.info('%c fin', 'font-weight: bold;');
console.debug('some debug statement');
```### ↳ `console.history();`
```js
[
{ LOG: ['a message'] },
{ GROUP: ['a group'] },
{ _INFO: ['maybe an object?', { a: 'str', b: false, c: [1, 2, 3], d: { a: 'b' } }] },
{ _WARN: ['something useful'] },
{ _ERROR: ['something unexpected'] },
{ _GROUP: ['%c a nested group with styling', 'color: #1da1f2; font-weight: bold;'] },
{ __LOG: ['%c a nested log with styling', 'color: #D63230;'] },
{ _LOG: ['almost done'] },
{ INFO: ['%c fin', 'font-weight: bold;'] },
{ DEBUG: ['some debug statement'] }
]
```### ↳ `console.printHistory();`
```
"LOG a message
GROUP a group
INFO maybe an object?, {a: 'str', b: false, c: [1, 2, 3], d: {a: 'b'}}
WARN something useful
ERROR something unexpected
GROUP %c a nested group with styling, color: #1da1f2; font-weight: bold;
LOG %c a nested log with styling, color: #D63230;
LOG almost done
INFO %c fin, font-weight: bold;
DEBUG some debug statement"
```### ↳ `console.clearHistory()`
```js
console.log('hello');
console.log('world');console.clearHistory();
console.log('apple');
console.history() // returns [{ LOG: ['apple'] }]
```### ↳ `console.print(message, [message1, ..., messageN])`
Logs messages to the console when debugging. Provide `makeConsoleMock` with the
native `console` object when creating the mock:```js
import makeConsoleMock from 'consolemock';console = makeConsoleMock(console);
```## Uses
### ⚡ Use `consolemock` With Snapshot Testing
The output of `printHistory` works great with
[Jest's snapshot testing](http://facebook.github.io/jest/docs/en/snapshot-testing.html#snapshot-testing-with-jest).
Create the mock console, log a few messages, then save the output of
`printHistory` as a snapshot.