Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ttmarek/consolemock

A tool for testing console logs
https://github.com/ttmarek/consolemock

javascript javascript-library jest testing-tools

Last synced: about 1 month ago
JSON representation

A tool for testing console logs

Awesome Lists containing this project

README

        



consolemock


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.