import 'package:sky/animation.dart'; import 'package:sky/widgets.dart'; import 'package:test/test.dart'; import 'widget_tester.dart'; class InnerComponent extends StatefulComponent { InnerComponent(); bool _didInitState = false; void initState() { _didInitState = true; } void syncConstructorArguments(InnerComponent source) { } Widget build() { return new Container(); } } class OutterContainer extends StatefulComponent { OutterContainer({ this.child }); InnerComponent child; void syncConstructorArguments(OutterContainer source) { child = source.child; } Widget build() { return child; } } void main() { test('resync stateful widget', () { WidgetTester tester = new WidgetTester(); InnerComponent inner; OutterContainer outter; tester.pumpFrame(() { return new OutterContainer(child: new InnerComponent()); }); tester.pumpFrame(() { inner = new InnerComponent(); outter = new OutterContainer(child: inner); return outter; }); expect(inner._didInitState, isFalse); expect(inner.parent, isNull); outter.setState(() {}); scheduler.beginFrame(0.0); expect(inner._didInitState, isFalse); expect(inner.parent, isNull); }); }