legacyPrimeAssets function
A function that primes all assets by just wasting time and hoping that it is enough for all assets to finish loading. Doing so is not recommended and very flaky. Consider switching to defaultPrimeAssets or a custom implementation.
See also:
- GoldenToolkitConfiguration.primeAssets to configure a global asset prime function.
Implementation
Future<void> legacyPrimeAssets(WidgetTester tester) async {
final renderObject = tester.binding.renderView;
assert(!renderObject.debugNeedsPaint);
/* this should work but doesn't:
final OffsetLayer layer = renderObject.debugLayer!;
*/
final layer = renderObject.debugLayer as OffsetLayer;
// This is a very flaky hack which should be avoided if possible.
// We are just trying to waste some time that matches the time needed to call matchesGoldenFile.
// This should be enough time for most images/assets to be ready.
await tester.runAsync<void>(() async {
final image = await layer.toImage(renderObject.paintBounds);
await image.toByteData(format: ImageByteFormat.png);
await image.toByteData(format: ImageByteFormat.png);
});
}