Mock-Console is a small ES module implementation of a console mock. It allows enabling, disabling, and capturing the output of the built-in console methods.
- ECMAScript Module
- Typescript Compatible
This package works isomorphically in browser and server-side JavaScript
Import directly from the local path or a CDN
<script type="module">
import { MockConsole } from 'path/to/mock-console/index.js'
</script>
The minified version can be imported from
<script type="module">
import { MockConsole } from 'path/to/mock-console/index.min.js'
</script>
Install the package
npm install @vanillaes/mock-console
Import using the module path
import { MockConsole } from '@vanillaes/mock-console'
const logger = new MockConsole()
Note: The mock is a singleton. Every time new
is called on the mock it'll return the same instance
Disables the built-in console methods (ie log
, info
, error
)
const logger = new MockConsole();
logger.disable();
console.log('This will NOT print to the console');
Restores the built-in console methods after they've been disabled
const logger = new MockConsole();
logger.disable();
console.log('This will NOT print to the console');
logger.restore();
console.log('This WILL print to the console');
> This WILL print to the console
Capture is used to store the console output so it can be retrieved later for testing
const logger = new MockConsole();
logger.capture();
console.log('This message will be captured');
logger.restore();
console.log(logger.logs);
> [ 'This message will be captured' ]
Captured logs are stored in an array
console.log
->MockConsole.logs[]
console.info
->MockConsole.infos[]
console.error
->MockConsole.errors[]
Flush removes all previously captured logs
const logger = new MockConsole();
logger.capture();
console.log('This message will be captured');
logger.restore();
console.log(logger.logs);
> [ 'This message will be captured' ]
logger.flush();
console.log(logger.logs);
> []
Typings are generated from JSDoc using Typescript. They are 100% compatible with VSCode Intellisense and will work seamlessly with Typescript.