From 1bb5d8d5342c642c8542f9daafd4da9c652bdf99 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Sun, 10 May 2026 20:23:00 +0200 Subject: [PATCH] test sweep: cover base/disposable.dart (T-91) Three pure-Dart tests covering the Disposable mixin: the disposed getter flipping after dispose(), onDisposed firing once, and register propagating dispose to child disposables. Coverage: disposable.dart 12/17 -> 17/17. Total 71.20% -> 71.23%. Co-Authored-By: Claude Opus 4.7 (1M context) --- test/terminal/disposable_test.dart | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 test/terminal/disposable_test.dart diff --git a/test/terminal/disposable_test.dart b/test/terminal/disposable_test.dart new file mode 100644 index 00000000..fa829cc4 --- /dev/null +++ b/test/terminal/disposable_test.dart @@ -0,0 +1,37 @@ +/// Unit tests for `lib/src/terminal/src/base/disposable.dart` — +/// covers the `disposed` flag, the `onDisposed` event, and registering +/// child disposables. +library; + +import 'package:clide/src/terminal/src/base/disposable.dart'; +import 'package:test/test.dart'; + +class _D with Disposable {} + +void main() { + group('Disposable mixin', () { + test('disposed flips from false to true after dispose()', () { + final d = _D(); + expect(d.disposed, isFalse); + d.dispose(); + expect(d.disposed, isTrue); + }); + + test('onDisposed fires once when dispose() runs', () { + final d = _D(); + var fired = 0; + d.onDisposed((_) => fired++); + d.dispose(); + expect(fired, 1); + }); + + test('register propagates dispose to child disposables', () { + final parent = _D(); + final child = _D(); + parent.register(child); + expect(child.disposed, isFalse); + parent.dispose(); + expect(child.disposed, isTrue); + }); + }); +}