@@ -4,9 +4,11 @@ var unassertify = require('..');
4
4
var fs = require ( 'fs' ) ;
5
5
var path = require ( 'path' ) ;
6
6
var Stream = require ( 'stream' ) ;
7
- var assert = require ( 'assert' ) ;
7
+ var assert = require ( 'power- assert' ) ;
8
8
var browserify = require ( 'browserify' ) ;
9
+ var coffeeify = require ( 'coffeeify' ) ;
9
10
var es = require ( 'event-stream' ) ;
11
+ var convert = require ( 'convert-source-map' ) ;
10
12
11
13
12
14
describe ( 'unassertify' , function ( ) {
@@ -22,6 +24,68 @@ describe('unassertify', function () {
22
24
done ( ) ;
23
25
} ) ) ;
24
26
} ) ;
27
+ it ( 'produces sourcemap when debug: true' , function ( done ) {
28
+ var b = browserify ( { debug : true } ) ;
29
+ var testFilepath = path . normalize ( path . join ( __dirname , 'fixtures' , 'func' , 'fixture.js' ) ) ;
30
+ b . add ( testFilepath ) ;
31
+ b . transform ( unassertify ) ;
32
+ b . bundle ( ) . pipe ( es . wait ( function ( err , data ) {
33
+ assert ( ! err ) ;
34
+ var code = data . toString ( 'utf-8' ) ;
35
+ // console.log(code);
36
+ assert ( ! / a s s e r t / . test ( code ) ) ;
37
+ var inlineMap = convert . fromSource ( code ) ;
38
+ assert ( inlineMap ) ;
39
+ var sourceMap = inlineMap . toObject ( ) ;
40
+ assert ( sourceMap ) ;
41
+ // console.log(JSON.stringify(sourceMap, null, 2));
42
+ assert ( sourceMap . sources . some ( function ( fpath ) { return fpath === testFilepath ; } ) ) ;
43
+ done ( ) ;
44
+ } ) ) ;
45
+ } ) ;
46
+ } ) ;
47
+
48
+
49
+ describe ( 'with preceding transform' , function ( ) {
50
+ it ( 'just remove assertions and dependencies when debug: false' , function ( done ) {
51
+ var b = browserify ( ) ;
52
+ b . add ( path . normalize ( path . join ( __dirname , 'fixtures' , 'coffee' , 'fixture.coffee' ) ) ) ;
53
+ b . transform ( coffeeify ) ;
54
+ b . transform ( unassertify ) ;
55
+ b . bundle ( ) . pipe ( es . wait ( function ( err , data ) {
56
+ assert ( ! err ) ;
57
+ var code = data . toString ( 'utf-8' ) ;
58
+ // console.log(code);
59
+ var inlineMap = convert . fromSource ( code ) ;
60
+ assert ( ! inlineMap ) ;
61
+ assert ( ! / r e q u i r e \( ' a s s e r t ' \) / . test ( code ) ) ;
62
+ done ( ) ;
63
+ } ) ) ;
64
+ } ) ;
65
+ it ( 'adjust sourcemap if debug: true' , function ( done ) {
66
+ var b = browserify ( { debug : true } ) ;
67
+ var testFilepath = path . normalize ( path . join ( __dirname , 'fixtures' , 'coffee' , 'fixture.coffee' ) ) ;
68
+ b . add ( testFilepath ) ;
69
+ b . transform ( coffeeify ) ;
70
+ b . transform ( unassertify ) ;
71
+ b . bundle ( ) . pipe ( es . wait ( function ( err , data ) {
72
+ assert ( ! err ) ;
73
+ var code = data . toString ( 'utf-8' ) ;
74
+ // console.log(code);
75
+ assert ( ! / r e q u i r e \( ' a s s e r t ' \) / . test ( code ) ) ;
76
+ var inlineMap = convert . fromSource ( code ) ;
77
+ assert ( inlineMap ) ;
78
+ var sourceMap = inlineMap . toObject ( ) ;
79
+ assert ( sourceMap ) ;
80
+ // console.log(JSON.stringify(sourceMap, null, 2));
81
+ assert ( sourceMap . sources . some ( function ( fpath ) { return fpath === testFilepath ; } ) ) ;
82
+ var originalCode = fs . readFileSync ( testFilepath , 'utf-8' ) ;
83
+ assert ( sourceMap . sourcesContent . some ( function ( eachCode ) {
84
+ return eachCode === originalCode ;
85
+ } ) ) ;
86
+ done ( ) ;
87
+ } ) ) ;
88
+ } ) ;
25
89
} ) ;
26
90
27
91
0 commit comments