Skip to content

Commit 4ffdc4d

Browse files
authored
Hot Restart progress events (#221)
Closes #220
1 parent 5ce0416 commit 4ffdc4d

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

webdev/lib/src/daemon/app_domain.dart

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class AppDomain extends Domain {
2323
WebdevVmClient _webdevVmClient;
2424
DebugService _debugService;
2525
bool _isShutdown = false;
26+
var _progressEventId = 0;
2627

2728
void _initialize(ServerManager serverManager) async {
2829
var devHandler = serverManager.servers.first.devHandler;
@@ -90,7 +91,20 @@ class AppDomain extends Domain {
9091
}
9192
// TODO(grouma) - Support pauseAfterRestart.
9293
// var pauseAfterRestart = getBoolArg(args, 'pause') ?? false;
94+
_progressEventId++;
95+
sendEvent('app.progress', {
96+
'appId': _appId,
97+
'id': '$_progressEventId',
98+
'message': 'Performing hot restart...',
99+
'progressId': 'hot.restart',
100+
});
93101
var response = await _vmService.callServiceExtension('hotRestart');
102+
sendEvent('app.progress', {
103+
'appId': _appId,
104+
'id': '$_progressEventId',
105+
'finished': true,
106+
'progressId': 'hot.restart',
107+
});
94108
return {
95109
'code': response.type == 'Success' ? 0 : 1,
96110
'message': response.toString()

webdev/test/daemon/app_domain_test.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,16 @@ void main() {
8888
var extensionCall = '[{"method":"app.restart","id":0,'
8989
'"params" : { "appId" : "$appId", "fullRestart" : true}}]';
9090
webdev.stdin.add(utf8.encode('$extensionCall\n'));
91-
await expectLater(webdev.stdout,
92-
emitsThrough(startsWith('[{"id":0,"result":{"code":0')));
91+
await expectLater(
92+
webdev.stdout,
93+
emitsThrough(emitsInOrder([
94+
startsWith(
95+
'[{"event":"app.progress","params":{"appId":"$appId","id":"1",'
96+
'"message":"Performing hot restart..."'),
97+
startsWith(
98+
'[{"event":"app.progress","params":{"appId":"$appId","id":"1",'
99+
'"finished":true')
100+
])));
93101
await exitWebdev(webdev);
94102
});
95103
});

0 commit comments

Comments
 (0)