UNPKG

3.3 kBJavaScriptView Raw
1'use strict';
2/*jshint asi: true */
3
4var test = require('tape')
5 , stackMapper = require('../../')
6 , relevant = require('../util/relevant')
7
8var origStack = [
9 'Error',
10 ' at foobar (/full/path/to/bundle.js:5:10)',
11 ' at module.exports (/full/path/to/bundle.js:9:10)',
12 ' at bar (/full/path/to/bundle.js:20:12)',
13 ' at Object.main (/full/path/to/bundle.js:22:10)',
14 ' at /Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles.js:18:21',
15 ' at /Users/thlorenz/dev/js/projects/stack-mapper/test/util/bundle-n-map.js:19:7',
16 ' at /Users/thlorenz/dev/js/projects/stack-mapper/node_modules/browserify/index.js:232:22',
17 ' at /Users/thlorenz/dev/js/projects/stack-mapper/node_modules/browserify/index.js:232:22',
18 ' at ConcatStream.cb (/Users/thlorenz/dev/js/projects/stack-mapper/node_modules/browserify/index.js:268:46)',
19 ' at ConcatStream.end (/Users/thlorenz/dev/js/projects/stack-mapper/node_modules/browserify/node_modules/concat-stream/index.js:42:21)' ]
20 .join('\n')
21
22var map = { version: 3,
23 file: 'generated.js',
24 sources:
25 [ '/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/barbar.js',
26 '/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/main.js' ],
27 names: [],
28 mappings: ';AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA',
29 sourcesContent:
30 [ '\'use strict\';\n\nfunction foobar() {\n return new Error();\n}\n\nvar go = module.exports = function () {\n return foobar(); \n};\n',
31 '\'use strict\';\n\nvar barbar = require(\'./barbar\');\n\nmodule.exports = function main() {\n var a = 1;\n function bar() {\n return barbar();\n }\n return bar();\n}\n' ] }
32
33test('\ntwo files returning error no sources', function (t) {
34 var sm = stackMapper(map);
35 var info = sm.map(origStack);
36 var stack = relevant(info, 6);
37
38 t.deepEqual(
39 stack
40 , [ 'Error',
41 ' at foobar (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/barbar.js:4:10)',
42 ' at module.exports (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/barbar.js:8:10)',
43 ' at bar (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/main.js:8:12)',
44 ' at Object.main (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/main.js:10:10)',
45 ' at /Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles.js' ]
46 , 'returns stack with all trace information mapped'
47 )
48
49 t.end()
50})
51
52test('\ntwo files returning error including sources', function (t) {
53 var sm = stackMapper(map);
54 var info = sm.map(origStack, true);
55 var stack = relevant(info, 7);
56
57 t.deepEqual(
58 stack
59 , [ 'Error',
60 ' at foobar (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/barbar.js:4:10)',
61 '\t" return new Error();"',
62 ' at module.exports (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/barbar.js:8:10)',
63 ' at bar (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/main.js:8:12)',
64 ' at Object.main (/Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles/main.js:10:10)',
65 ' at /Users/thlorenz/dev/js/projects/stack-mapper/test/twofiles.js' ]
66 , 'returns stack with all trace information mapped'
67 )
68 t.end()
69})