# CardX Mock Logger

Mocks the @cardx/logger provided by @cardx/lambda-handler

1. Gets rid of the extra noise from the underlying lambda-logger
2. Color codes log messages so you know what is being used as trace, debug, etc
3. Warns you when using console.log so you (hopefully) don't leave it in
4. Turns log.level functions and console.log into mocks that can be investigated

## Installation

``` bash
npm --save-dev install @cardx/mock-logger
```

## Usage

``` javascript
const { log } = require("@cardx/lambda-handler");
const mockLogger = require("@cardx/mock-logger");

beforeEach(() => {
  mockLogger.spy(log);
});
afterEach(() => {
  mockLogger.restore();
});

describe("CardX Mock Logger", () => {
  it("Is easy to use!", () => {
    log.trace("Trace messages are dim");
    log.debug("Debug messages are cyan");
    log.info("Info messages are green");
    log.warn("Warn messages are bright yellow");
    log.error("Error messages are bright red");
    console.log("Console.log messages get a warning");

    expect(log.trace.mock.calls.length).toBe(1);
    expect(console.log.mock.calls.length).toBe(1);
  });
});
```

## Global Mocking
To mock the logger for *all* of your Jest files, isolate the mocking code in a separate file (ex. `setupMockLogger.js`):
``` javascript
const { log } = require("@cardx/lambda-handler");
const mockLogger = require("@cardx/mock-logger");
beforeEach(() => {
  mockLogger.spy(log);
});
afterEach(() => {
  mockLogger.restore();
});
```

Then execute this file as a part of the Jest setup, by adding the following to `jest.config.js`:
``` javascript
module.exports = {
  ...
  setupFilesAfterEnv: ["./setupMockLogger.js"]
};
```


## Changelog

* 0.1.0: A usable thing

## License

© CardX. All rights reserved.
