'use strict'; const { expect } = require('chai'); const ServerlessError = require('../../../lib/serverless-error'); describe('test/unit/lib/serverless-error.test.js', () => { it('should store message', () => { const error = new ServerlessError('Some message'); expect(error.message).to.be.equal('Some message'); }); it('should expose constructor name', () => { const error = new ServerlessError('Some message'); expect(error.name).to.be.equal('ServerlessError'); }); it('should store code', () => { const error = new ServerlessError('Some message', 'ERROR_CODE'); expect(error.code).to.be.equal('ERROR_CODE'); }); it('message should always resolve as string', () => { const error = new ServerlessError({}); expect(typeof error.message).to.be.equal('string'); }); it('should have stack trace', () => { function testStackFrame() { throw new ServerlessError('Some message'); } try { testStackFrame(); } catch (error) { expect(error.stack).to.have.string('testStackFrame'); } }); });