Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andfaulkner/kidnap-console
Wrap a function. Capture all its logs, stop them from displaying, and store them for later access along with the return value. Makes console log output testing a breeze.
https://github.com/andfaulkner/kidnap-console
console console-log console-log-testing javascript logging mocha tdd terminal test test-driven-development testing typescript unit-testing
Last synced: 17 days ago
JSON representation
Wrap a function. Capture all its logs, stop them from displaying, and store them for later access along with the return value. Makes console log output testing a breeze.
- Host: GitHub
- URL: https://github.com/andfaulkner/kidnap-console
- Owner: andfaulkner
- Created: 2017-04-04T07:08:56.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-04-04T07:15:21.000Z (almost 8 years ago)
- Last Synced: 2024-04-24T22:01:03.910Z (10 months ago)
- Topics: console, console-log, console-log-testing, javascript, logging, mocha, tdd, terminal, test, test-driven-development, testing, typescript, unit-testing
- Language: TypeScript
- Size: 114 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# kidnap-console
* Makes console log output testing a breeze.
* Capture log output by wrapping functions that do console calls.
* Stores both of the following from each wrapped function:
* 1) All values that get passed to console.log, console.warn, console.dir, or console.error;
* 2) Return value of the function.
* Prevents log from displaying on the console## Purpose
* Unit testing of console output
* (None of the existing solutions to this were really working for me)## Installation
yarn add --dev kidnap-console
Or:npm install --save-dev kidnap-console
----
## UsageExample 1:
// You can also import kidnapLogs or kidnapConsole. They are aliases.
import { blockLogOutput } from 'kidnap-console';const capturedLogs = blockLogOutput(() => console.log('try to log this'));
// [[no output to console occurs]]console.log(capturedLogs.stores.log);
// => ['try to log this']
Example 2:
function logThings() {
console.dir('hello dir');
console.log('hello log');
console.warn('hello warn');
console.error('hello error');
return 'my return value';
}const capturedLogs = blockLogOutput(logThings);
// [[no output to console occurs]]//
// Captures the return value of the function
//
console.log(capturedLogs.result);
// => 'my return value'console.log(capturedLogs.stores.log);
// => ['hello log']console.log(capturedLogs.stores.dir);
// => ['hello dir']
console.log(capturedLogs.stores.warn);
// => ['hello warn']
console.log(capturedLogs.stores.error);
// => ['hello error']