diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/pretty-error/test/PrettyError.coffee | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/pretty-error/test/PrettyError.coffee')
| -rw-r--r-- | node_modules/pretty-error/test/PrettyError.coffee | 109 |
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() |
