blob: c918af364c421766155cd54e255baa9b5019ee36 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import 'package:test/test.dart';
import 'package:vm_service/vm_service.dart';
void main() {
test('Call dispose handler before onDone completion', () async {
final controller = StreamController<String>(
onCancel: () async {
await Future.delayed(const Duration(seconds: 1));
},
);
bool completed = false;
final fakeService = VmService(
controller.stream,
controller.sink.add,
disposeHandler: () async {
completed = true;
},
);
unawaited(fakeService.dispose());
await fakeService.onDone;
expect(completed, true);
await controller.close();
});
}