1+ var fs = require ( 'fs' ) ;
2+ var path = require ( 'path' ) ;
3+
4+ var mdeps = require ( '../' ) ;
5+ var test = require ( 'tap' ) . test ;
6+ var nodeResolve = require ( 'resolve' ) ;
7+ var browserResolve = require ( 'browser-resolve' ) ;
8+
9+ var missing = path . join ( __dirname , '/missing' ) ;
10+
11+ var files = {
12+ foo : path . join ( __dirname , '/files/resolve/foo/foo.js' ) ,
13+ bar : path . join ( __dirname , '/files/resolve/bar/bar.js' ) ,
14+ bar2 : path . join ( __dirname , '/files/resolve/bar/bar2.js' ) ,
15+ baz : path . join ( __dirname , '/files/resolve/foo/baz/baz.js' )
16+ } ;
17+
18+ var sources = Object . keys ( files )
19+ . reduce ( function ( acc , file ) {
20+ acc [ file ] = fs . readFileSync ( files [ file ] , 'utf8' ) ;
21+ return acc ;
22+ } , { } ) ;
23+
24+ var expectedRows = [
25+ {
26+ "deps" : { } ,
27+ "file" : files . baz ,
28+ "id" : files . baz ,
29+ "source" : sources . baz
30+ } ,
31+ {
32+ "deps" : { } ,
33+ "file" : files . bar2 ,
34+ "id" : files . bar2 ,
35+ "source" : sources . bar2
36+ } ,
37+ {
38+ "deps" : {
39+ "./bar2" : files . bar2
40+ } ,
41+ "file" : files . bar ,
42+ "id" : files . bar ,
43+ "source" : sources . bar
44+ } ,
45+ {
46+ "deps" : {
47+ "../bar/bar.js" : files . bar ,
48+ "./baz/baz.js" : files . baz
49+ } ,
50+ "entry" : true ,
51+ "file" : files . foo ,
52+ "id" : "foo" ,
53+ "source" : sources . foo
54+ }
55+ ] ;
56+
57+ test ( 'browser resolve - missing' , function ( t ) {
58+ t . plan ( 1 ) ;
59+ var d = mdeps ( { resolve : browserResolve } ) ;
60+
61+ d . end ( { id : 'missing' , file : missing , entry : true } ) ;
62+
63+ d . on ( 'end' , function ( ) {
64+ t . fail ( 'errored' ) ;
65+ } ) ;
66+ d . on ( 'error' , function ( err ) {
67+ t . match (
68+ String ( err ) ,
69+ / C a n n o t f i n d m o d u l e .* /
70+ ) ;
71+ } ) ;
72+ } ) ;
73+
74+ test ( 'node resolve - missing' , function ( t ) {
75+ t . plan ( 1 ) ;
76+ var d = mdeps ( { resolve : nodeResolve } ) ;
77+
78+ d . end ( { id : 'missing' , file : missing , entry : true } ) ;
79+
80+ d . on ( 'end' , function ( ) {
81+ t . fail ( 'errored' ) ;
82+ } ) ;
83+ d . on ( 'error' , function ( err ) {
84+ t . match (
85+ String ( err ) ,
86+ / C a n n o t f i n d m o d u l e .* /
87+ ) ;
88+ } ) ;
89+ } ) ;
90+
91+ test ( 'browser resolve' , function ( t ) {
92+ t . plan ( 1 ) ;
93+ var d = mdeps ( { resolve : browserResolve } ) ;
94+
95+ d . end ( { id : 'foo' , file : files . foo , entry : true } ) ;
96+
97+ var rows = [ ] ;
98+ d . on ( 'data' , function ( row ) { rows . push ( row ) } ) ;
99+ d . on ( 'end' , function ( ) {
100+ t . same ( rows , expectedRows ) ;
101+ } ) ;
102+ d . on ( 'error' , function ( ) {
103+ t . fail ( 'errored' ) ;
104+ } ) ;
105+ } ) ;
106+
107+ test ( 'node resolve' , function ( t ) {
108+ t . plan ( 1 ) ;
109+ var d = mdeps ( { resolve : nodeResolve } ) ;
110+
111+ d . end ( { id : 'foo' , file : files . foo , entry : true } ) ;
112+
113+ var rows = [ ] ;
114+ d . on ( 'data' , function ( row ) { rows . push ( row ) } ) ;
115+ d . on ( 'end' , function ( ) {
116+ t . same ( rows , expectedRows ) ;
117+ } ) ;
118+ d . on ( 'error' , function ( ) {
119+ t . fail ( 'errored' ) ;
120+ } ) ;
121+ } ) ;
0 commit comments