From 34648fbe63a173798e52f9d04686749707d445e1 Mon Sep 17 00:00:00 2001 From: Chris Dickinson Date: Tue, 21 Jun 2011 22:20:06 -0500 Subject: [PATCH] Add test subdirectory --- test/fixture/example.js | 7 +++++ test/test.js | 65 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 test/fixture/example.js create mode 100644 test/test.js diff --git a/test/fixture/example.js b/test/fixture/example.js new file mode 100644 index 0000000..bec73d5 --- /dev/null +++ b/test/fixture/example.js @@ -0,0 +1,7 @@ +exports.unnamed = function(text) { + throw new Error(text); +}; + +exports.named = function named(text) { + throw new Error(text); +}; diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..94b45d7 --- /dev/null +++ b/test/test.js @@ -0,0 +1,65 @@ +var assert = require('assert'); + +var fixture = require('./fixture/example'); + +var unnamed = fixture.unnamed, + named = fixture.named; + + +var trace = require('../trace').trace; + +var expected = 'random_'+~~(Math.random()*100) + +var local_unnamed = function(text) { + throw new Error(text); +}; + +try { + local_unnamed(expected); +} catch(err) { + var traced = trace(err); + assert.equal(traced.frames.length, err.stack.split('\n').length - 1); + assert.equal(traced.frames[0].named_location, ''); + + assert.equal(traced.first_line, err.stack.split('\n')[0]); + assert.strictEqual(traced.original_error, err); + + var lines = err.stack.split('\n').slice(1); + for(var i = 0, len = lines.length; i < len; ++i) { + assert.notStrictEqual(lines[i].indexOf(traced.frames[i].line + ':' + traced.frames[i].character), -1); + assert.notStrictEqual(lines[i].indexOf(traced.frames[i].filename), -1); + } +} + +try { + unnamed(expected); +} catch(err) { + var traced = trace(err); + assert.equal(traced.frames.length, err.stack.split('\n').length - 1); + + assert.equal(traced.first_line, err.stack.split('\n')[0]); + assert.strictEqual(traced.original_error, err); + + var lines = err.stack.split('\n').slice(1); + for(var i = 0, len = lines.length; i < len; ++i) { + assert.notStrictEqual(lines[i].indexOf(traced.frames[i].line + ':' + traced.frames[i].character), -1); + assert.notStrictEqual(lines[i].indexOf(traced.frames[i].filename), -1); + } +} + +try { + named(expected); +} catch(err) { + var traced = trace(err); + assert.equal(traced.frames.length, err.stack.split('\n').length - 1); + + assert.equal(traced.first_line, err.stack.split('\n')[0]); + assert.strictEqual(traced.original_error, err); + + var lines = err.stack.split('\n').slice(1); + for(var i = 0, len = lines.length; i < len; ++i) { + assert.notStrictEqual(lines[i].indexOf(traced.frames[i].line + ':' + traced.frames[i].character), -1); + assert.notStrictEqual(lines[i].indexOf(traced.frames[i].filename), -1); + } +} +