aboutsummaryrefslogtreecommitdiff
path: root/node_modules/pretty-error/test/PrettyError.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/pretty-error/test/PrettyError.coffee')
-rw-r--r--node_modules/pretty-error/test/PrettyError.coffee109
1 files changed, 109 insertions, 0 deletions
diff --git a/node_modules/pretty-error/test/PrettyError.coffee b/node_modules/pretty-error/test/PrettyError.coffee
new file mode 100644
index 00000000..1b7a715b
--- /dev/null
+++ b/node_modules/pretty-error/test/PrettyError.coffee
@@ -0,0 +1,109 @@
+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()