File tree Expand file tree Collapse file tree 2 files changed +36
-2
lines changed Expand file tree Collapse file tree 2 files changed +36
-2
lines changed Original file line number Diff line number Diff line change @@ -27,11 +27,17 @@ class _ExpansibleControllerHook extends Hook<ExpansibleController> {
2727
2828class _ExpansibleControllerHookState
2929 extends HookState <ExpansibleController , _ExpansibleControllerHook > {
30- final controller = ExpansibleController ();
30+ final _controller = ExpansibleController ();
3131
3232 @override
3333 String get debugLabel => 'useExpansibleController' ;
3434
3535 @override
36- ExpansibleController build (BuildContext context) => controller;
36+ ExpansibleController build (BuildContext context) => _controller;
37+
38+ @override
39+ void dispose () {
40+ _controller.dispose ();
41+ super .dispose ();
42+ }
3743}
Original file line number Diff line number Diff line change @@ -78,5 +78,33 @@ void main() {
7878 controller.collapse ();
7979 expect (controller.isExpanded, false );
8080 });
81+
82+ testWidgets ('check ExpansibleController gets disposed' , (tester) async {
83+ late ExpansibleController controller;
84+ await tester.pumpWidget (MaterialApp (
85+ home: Scaffold (
86+ body: HookBuilder (builder: (context) {
87+ controller = useExpansibleController ();
88+ return ExpansionTile (
89+ controller: controller,
90+ title: const Text ('Expansion Tile' ),
91+ );
92+ }),
93+ ),
94+ ));
95+
96+ await tester.pumpWidget (const SizedBox ());
97+
98+ expect (
99+ () => controller.addListener (() {}),
100+ throwsA (
101+ isFlutterError.having (
102+ (e) => e.message,
103+ 'message' ,
104+ contains ('disposed' ),
105+ ),
106+ ),
107+ );
108+ });
81109 });
82110}
You can’t perform that action at this time.
0 commit comments