@@ -42,6 +42,21 @@ void main() {
4242 configWriter = ConfigWriter (fs, name);
4343 });
4444
45+ void createJsFilesForTesting () {
46+ // create a temp dir that has the fake js files that we use to inject
47+ // the debug id into
48+ fs.directory ('$buildDir /web' ).createSync (recursive: true );
49+ fs.file ('$buildDir /web/file.js' ).createSync ();
50+ fs.file ('$buildDir /web/file.js.map' ).writeAsStringSync ('''{
51+ "mappings": "AAAAA,SAASC,cAAc,WAAWC, ...",
52+ "sources": ["../../lib/something.dart", "../lib/foo.dart", "../../../../lib/main.dart", "../../Documents/flutter/packages/flutter/lib/src/widgets/icon_data.dart"],
53+ "sourcesContent": ["document.querySelector('button')"],
54+ "names": ["document","querySelector"],
55+ "version": 3,
56+ "file": "example.min.js.map"
57+ }''' );
58+ }
59+
4560 for (final url in const ['http://127.0.0.1' , null ]) {
4661 for (var fileType in fileTypes) {
4762 group ('url: $url ' , () {
@@ -67,20 +82,11 @@ void main() {
6782 return pm.commandLog.skip (commonCommands.length);
6883 }
6984
70- test ('works with all configuration files' , () async {
71- // create a temp dir that has the fake js files that we use to inject
72- // the debug id into
73- fs.directory ('$buildDir /web' ).createSync (recursive: true );
74- fs.file ('$buildDir /web/file.js' ).createSync ();
75- fs.file ('$buildDir /web/file.js.map' ).writeAsStringSync ('''{
76- "mappings": "AAAAA,SAASC,cAAc,WAAWC, ...",
77- "sources": ["../../lib/something.dart", "../lib/foo.dart", "../../../../lib/main.dart", "../../Documents/flutter/packages/flutter/lib/src/widgets/icon_data.dart"],
78- "sourcesContent": ["document.querySelector('button')"],
79- "names": ["document","querySelector"],
80- "version": 3,
81- "file": "example.min.js.map"
82- }''' );
85+ setUp (() {
86+ createJsFilesForTesting ();
87+ });
8388
89+ test ('works with all configuration files' , () async {
8490 const version = '1.0.0' ;
8591 final config = '''
8692 upload_debug_symbols: true
@@ -103,6 +109,26 @@ void main() {
103109 ]);
104110 });
105111
112+ test ('ignores sourcemaps upload if no js files found' , () async {
113+ const version = '1.0.0' ;
114+ final config = '''
115+ upload_source_maps: true
116+ web_build_path: not/existing
117+ log_level: debug
118+ ignore_missing: true
119+ ''' ;
120+ final commandLog = await runWith (version, config);
121+ const release = '$name @$version ' ;
122+
123+ final args = '$commonArgs --log-level debug' ;
124+ expect (commandLog, [
125+ '$cli $args debug-files upload $orgAndProject build/app/outputs' ,
126+ '$cli $args releases $orgAndProject new $release ' ,
127+ '$cli $args releases $orgAndProject set-commits $release --auto --ignore-missing' ,
128+ '$cli $args releases $orgAndProject finalize $release '
129+ ]);
130+ });
131+
106132 test ('fails without args and pubspec' , () async {
107133 final exitCode = await plugin.run ([]);
108134 expect (exitCode, 1 );
@@ -205,8 +231,8 @@ void main() {
205231 final args = commonArgs;
206232 expect (commandLog, [
207233 '$cli $args releases $orgAndProject new $release ' ,
208- '$cli sourcemaps inject $orgAndProject ' ,
209- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
234+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
235+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
210236 '$cli $args releases $orgAndProject set-commits $release --auto' ,
211237 '$cli $args releases $orgAndProject finalize $release '
212238 ]);
@@ -226,8 +252,8 @@ void main() {
226252 final args = commonArgs;
227253 expect (commandLog, [
228254 '$cli $args releases $orgAndProject new $configRelease ' ,
229- '$cli sourcemaps inject $orgAndProject ' ,
230- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
255+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
256+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
231257 '$cli $args releases $orgAndProject set-commits $configRelease --auto' ,
232258 '$cli $args releases $orgAndProject finalize $configRelease '
233259 ]);
@@ -249,8 +275,8 @@ void main() {
249275 final args = commonArgs;
250276 expect (commandLog, [
251277 '$cli $args releases $orgAndProject new $release ' ,
252- '$cli sourcemaps inject $orgAndProject ' ,
253- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
278+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
279+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
254280 '$cli $args releases $orgAndProject set-commits $release --auto' ,
255281 '$cli $args releases $orgAndProject finalize $release '
256282 ]);
@@ -271,8 +297,8 @@ void main() {
271297 final args = commonArgs;
272298 expect (commandLog, [
273299 '$cli $args releases $orgAndProject new $configRelease ' ,
274- '$cli sourcemaps inject $orgAndProject ' ,
275- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
300+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
301+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
276302 '$cli $args releases $orgAndProject set-commits $configRelease --auto' ,
277303 '$cli $args releases $orgAndProject finalize $configRelease '
278304 ]);
@@ -293,8 +319,8 @@ void main() {
293319 final args = commonArgs;
294320 expect (commandLog, [
295321 '$cli $args releases $orgAndProject new $release ' ,
296- '$cli sourcemaps inject $orgAndProject ' ,
297- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
322+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
323+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
298324 '$cli $args releases $orgAndProject set-commits $release --auto' ,
299325 '$cli $args releases $orgAndProject finalize $release '
300326 ]);
@@ -318,8 +344,8 @@ void main() {
318344 final args = commonArgs;
319345 expect (commandLog, [
320346 '$cli $args releases $orgAndProject new $release ' ,
321- '$cli sourcemaps inject $orgAndProject ' ,
322- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
347+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
348+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
323349 '$cli $args releases $orgAndProject set-commits $release --auto' ,
324350 '$cli $args releases $orgAndProject finalize $release '
325351 ]);
@@ -341,8 +367,8 @@ void main() {
341367 final args = commonArgs;
342368 expect (commandLog, [
343369 '$cli $args releases $orgAndProject new $configRelease ' ,
344- '$cli sourcemaps inject $orgAndProject ' ,
345- '$cli $args sourcemaps upload $buildDir /web --ext js --ext map $orgAndProject ' ,
370+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
371+ '$cli $args sourcemaps upload $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
346372 '$cli $args releases $orgAndProject set-commits $configRelease --auto' ,
347373 '$cli $args releases $orgAndProject finalize $configRelease '
348374 ]);
@@ -351,6 +377,8 @@ void main() {
351377 test (
352378 'used from config but not replacing build/dist in config release' ,
353379 () async {
380+ createJsFilesForTesting ();
381+
354382 const version = '1.0.0' ;
355383 final configRelease = 'fixture-configRelease+configDist' ;
356384 final configDist = 'configDist' ;
@@ -367,8 +395,8 @@ void main() {
367395 final args = commonArgs;
368396 expect (commandLog, [
369397 '$cli $args releases $orgAndProject new $configRelease ' ,
370- '$cli sourcemaps inject $orgAndProject ' ,
371- '$cli $args sourcemaps upload --url-prefix ~/app/ $buildDir /web --ext js --ext map $orgAndProject ' ,
398+ '$cli sourcemaps inject build/web/file.js $orgAndProject ' ,
399+ '$cli $args sourcemaps upload --url-prefix ~/app/ $buildDir /web --ext js --ext map --strip-prefix ../../Documents --strip-prefix ../../../../ --strip-prefix ../../ --strip-prefix ../ $orgAndProject ' ,
372400 '$cli $args releases $orgAndProject set-commits $configRelease --auto' ,
373401 '$cli $args releases $orgAndProject finalize $configRelease '
374402 ]);
0 commit comments