123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- chai = require 'chai'
- PrettyError = require '../src/PrettyError'
- defaultStyle = require '../src/defaultStyle'
- chai.should()
- isFormatted = (exc) ->
- exc.stack.indexOf(' \u001b[0m\u001b[97m\u001b[41m') is 0
- error = (what) ->
- if typeof what is 'string'
- return error -> throw Error what
- else if what instanceof Function
- try
- do what
- catch e
- return e
- throw Error "bad argument for error"
- describe "PrettyError", ->
- describe "constructor()", ->
- it "should work", ->
- new PrettyError
- describe "getObject", ->
- it "should return a string", ->
- p = new PrettyError
- p.getObject(error "hello").should.be.an 'object'
- describe "style", ->
- it "should, by default, return the contents in `default-style`", ->
- p = new PrettyError
- p.style.should.eql defaultStyle()
- it "should return different contents after appending some styles", ->
- p = new PrettyError
- p.appendStyle 'some selector': 'display': 'block'
- p.style.should.not.eql defaultStyle()
- describe "render()", ->
- it "should work", ->
- p = new PrettyError
- p.skipNodeFiles()
- p.appendStyle 'pretty-error': marginLeft: 4
- e = error -> "a".should.equal "b"
- console.log p.render e, no
- e2 = error -> Array.split(Object)
- console.log p.render e2, no
- e3 = "Plain error message"
- console.log p.render e3, no
- e4 =
- message: "Custom error message"
- kind: "Custom Error"
- console.log p.render e4, no
- e5 =
- message: "Error with custom stack"
- stack: ['line one', 'line two']
- wrapper: 'UnhandledRejection'
- console.log p.render e5, no
- e6 = error -> PrettyError.someNonExistingFuncion()
- console.log p.render e6, no
- it.skip "should render without colors if pe._useColors is false", ->
- p = new PrettyError
- p.withoutColors()
- p.skipNodeFiles()
- p.appendStyle 'pretty-error': marginLeft: 4
- e = error -> "a".should.equal "b"
- console.log p.render e, no
- describe "start()", ->
- prepareStackTrace = null
- beforeEach ->
- {prepareStackTrace} = Error
- Error.prepareStackTrace = null
- afterEach ->
- Error.prepareStackTrace = prepareStackTrace
- it "throws unformatted error when not started", ->
- try
- throw new Error "foo bar"
- catch exc
- isFormatted(exc).should.be.eql false
- it "throws formatted the error", ->
- PrettyError.start()
- try
- throw new Error "foo bar"
- catch exc
- isFormatted(exc).should.be.eql true
- exc.stack.split(/\n/g).length.should.be.above 2
- PrettyError.stop()
|