@times/error-collection

1.0.2 • Public • Published

Error Collection

Allows collections of errors to be bubbled up through an application

Build Status Code coverage npm version

Usage

// Load the library
const { ErrorCollection } = require('@times/error-collection');

// Create an error with attached data
const error = new ErrorCollection('INVALID_ID', { id });

// You can append more errors to the chain
error.addError('ANOTHER_ERROR');

// And then get all the errors back
error.getErrors();

Chai plugin

There is a Chai plugin that adds throwErrorCollection() and rejectedWithErrorCollection() methods which can be used for testing.

// Load the plugin
const { errorCollectionChaiPlugin } = require('@times/error-collection');

// Load chai and initialise the plugin
const chai = require('chai');
chai.use(errorCollectionChaiPlugin);
const expect = chai.expect;

// Write your tests
describe('myThing', () => {
  describe('#myMethod()', () => {
    it('should pass a valid check', () => {
      expect(() => {}).to.throwErrorCollection([
        { code: 'SOME_ERROR', data: { name: 'test' } },
      ]);
    });


    it('should pass a valid promise check', () => {
      return expect(
        myFunction()
      ).to.be.rejectedWithErrorCollection([
        { code: 'SOME_ERROR', data: { name: 'test' } },
      ]);
    });
  });
});

Contributing

Pull requests are very welcome. Please include a clear description of any changes, and full test coverage.

During development you can run tests with

npm test

Readme

Keywords

none

Package Sidebar

Install

npm i @times/error-collection

Weekly Downloads

3

Version

1.0.2

License

ISC

Last publish

Collaborators

  • danielbenclark
  • chrishutchinson
  • mattietk