Skip to content

Allows collections of errors to be built and bubbled up through an application

Notifications You must be signed in to change notification settings

times/error-collection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Allows collections of errors to be built and bubbled up through an application

Resources

Stars

Watchers

Forks

Packages

No packages published