1 | 'use strict';
|
2 |
|
3 |
|
4 | var test = require('tape')
|
5 | , stackMapper = require('../../')
|
6 | , relevant = require('../util/relevant')
|
7 |
|
8 | var 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 |
|
22 | var 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 |
|
33 | test('\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 |
|
52 | test('\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 | })
|