expectStateData function
Assert the stateData of a NyPage or NyState widget.
Finds the widget using finder and checks its stateData against
the provided matcher. The finder should match a StatefulWidget
whose state extends NyBaseState.
Example:
fireStateUpdate('MyWidget', data: 42);
await tester.pump();
expectStateData(tester, find.byType(MyWidget), equals(42));
Implementation
void expectStateData(WidgetTester tester, Finder finder, dynamic matcher) {
final elements = finder.evaluate();
if (elements.isEmpty) {
fail('No widget found for finder: $finder');
}
final element = elements.first;
if (element is StatefulElement && element.state is NyBaseState) {
expect(
(element.state as NyBaseState).stateData,
matcher,
reason: 'State data did not match expected value',
);
} else {
fail(
'Widget state is not a NyBaseState. '
'Element: ${element.runtimeType}',
);
}
}