@@ -18,7 +18,6 @@ import 'package:flutter_tools/src/globals.dart' as globals;
1818import 'package:shelf/shelf.dart' ;
1919
2020import '../../src/common.dart' ;
21- import '../../src/io.dart' ;
2221import '../../src/testbed.dart' ;
2322
2423const List <int > kTransparentImage = < int > [
@@ -278,55 +277,63 @@ void main() {
278277 }));
279278
280279 test ('Can start web server with specified assets' , () => testbed.run (() async {
281- await IOOverrides .runWithIOOverrides (() async {
282- final File outputFile = globals.fs.file (globals.fs.path.join ('lib' , 'main.dart' ))
283- ..createSync (recursive: true );
284- outputFile.parent.childFile ('a.sources' ).writeAsStringSync ('' );
285- outputFile.parent.childFile ('a.json' ).writeAsStringSync ('{}' );
286- outputFile.parent.childFile ('a.map' ).writeAsStringSync ('{}' );
287- outputFile.parent.childFile ('.packages' ).writeAsStringSync ('\n ' );
288-
289- final ResidentCompiler residentCompiler = MockResidentCompiler ();
290- when (residentCompiler.recompile (
291- any,
292- any,
293- outputPath: anyNamed ('outputPath' ),
294- packagesFilePath: anyNamed ('packagesFilePath' ),
295- )).thenAnswer ((Invocation invocation) async {
296- return const CompilerOutput ('a' , 0 , < Uri > []);
297- });
298-
299- final WebDevFS webDevFS = WebDevFS (
300- hostname: 'localhost' ,
301- port: 0 ,
302- packagesFilePath: '.packages' ,
303- urlTunneller: null ,
304- buildMode: BuildMode .debug,
305- enableDwds: false ,
306- entrypoint: Uri .base ,
307- );
308- webDevFS.requireJS.createSync (recursive: true );
309- webDevFS.dartSdk.createSync (recursive: true );
310- webDevFS.dartSdkSourcemap.createSync (recursive: true );
311- webDevFS.stackTraceMapper.createSync (recursive: true );
312-
313- await webDevFS.create ();
314- await webDevFS.update (
315- mainPath: globals.fs.path.join ('lib' , 'main.dart' ),
316- generator: residentCompiler,
317- trackWidgetCreation: true ,
318- bundleFirstUpload: true ,
319- invalidatedFiles: < Uri > [],
320- );
321-
322- expect (webDevFS.webAssetServer.getFile ('/main.dart' ), isNotNull);
323- expect (webDevFS.webAssetServer.getFile ('/manifest.json' ), isNotNull);
324- expect (webDevFS.webAssetServer.getFile ('/flutter_service_worker.js' ), isNotNull);
325-
326- await webDevFS.destroy ();
327- await webDevFS.dwds.stop ();
328- }, FlutterIOOverrides (fileSystem: globals.fs));
329- }), skip: true ); // Not clear the best way to test this, since shelf hits the real filesystem.
280+ final File outputFile = globals.fs.file (globals.fs.path.join ('lib' , 'main.dart' ))
281+ ..createSync (recursive: true );
282+ outputFile.parent.childFile ('a.sources' ).writeAsStringSync ('' );
283+ outputFile.parent.childFile ('a.json' ).writeAsStringSync ('{}' );
284+ outputFile.parent.childFile ('a.map' ).writeAsStringSync ('{}' );
285+ outputFile.parent.childFile ('.packages' ).writeAsStringSync ('\n ' );
286+
287+ final ResidentCompiler residentCompiler = MockResidentCompiler ();
288+ when (residentCompiler.recompile (
289+ any,
290+ any,
291+ outputPath: anyNamed ('outputPath' ),
292+ packagesFilePath: anyNamed ('packagesFilePath' ),
293+ )).thenAnswer ((Invocation invocation) async {
294+ return const CompilerOutput ('a' , 0 , < Uri > []);
295+ });
296+
297+ final WebDevFS webDevFS = WebDevFS (
298+ hostname: 'localhost' ,
299+ port: 0 ,
300+ packagesFilePath: '.packages' ,
301+ urlTunneller: null ,
302+ buildMode: BuildMode .debug,
303+ enableDwds: false ,
304+ entrypoint: Uri .base ,
305+ testMode: true ,
306+ );
307+ webDevFS.requireJS.createSync (recursive: true );
308+ webDevFS.stackTraceMapper.createSync (recursive: true );
309+
310+ await webDevFS.create ();
311+ webDevFS.webAssetServer.dartSdk
312+ ..createSync (recursive: true )
313+ ..writeAsStringSync ('HELLO' );
314+ webDevFS.webAssetServer.dartSdkSourcemap.createSync (recursive: true );
315+
316+ await webDevFS.update (
317+ mainPath: globals.fs.path.join ('lib' , 'main.dart' ),
318+ generator: residentCompiler,
319+ trackWidgetCreation: true ,
320+ bundleFirstUpload: true ,
321+ invalidatedFiles: < Uri > [],
322+ );
323+
324+ expect (webDevFS.webAssetServer.getFile ('/main.dart' ), isNotNull);
325+ expect (webDevFS.webAssetServer.getFile ('/manifest.json' ), isNotNull);
326+ expect (webDevFS.webAssetServer.getFile ('/flutter_service_worker.js' ), isNotNull);
327+ expect (await webDevFS.webAssetServer.dartSourceContents ('/dart_sdk.js' ), 'HELLO' );
328+
329+ // Update to the SDK.
330+ webDevFS.webAssetServer.dartSdk.writeAsStringSync ('BELLOW' );
331+
332+ // New SDK should be visible..
333+ expect (await webDevFS.webAssetServer.dartSourceContents ('/dart_sdk.js' ), 'BELLOW' );
334+
335+ await webDevFS.destroy ();
336+ }));
330337}
331338
332339class MockHttpServer extends Mock implements HttpServer {}
0 commit comments