Implementation
Future<void> toMatchRenderTreeSnapshot(String id,
{List<RegExp>? removeExps}) async {
final currentSnapshot =
await Snapshot.getSnapshotFromFile(id, SnapshotType.render, options);
final newSnapshot = await Snapshot.getSnapshotFromDriver(
id, SnapshotType.render, driver, removeExps);
final sh = await driver.screenshot();
final snap = Snapshot(id, image: sh);
if (newSnapshot == null) {
throw Exception(
'SnapshotTest: (toMatchRenderTreeSnapshot) New Snapshot is null');
}
if (currentSnapshot == null || options.forceCaptureMode) {
await newSnapshot.save(options);
await snap.saveImage(options, sh);
return;
}
await snap.saveImage(options, sh, asNew: true);
try {
currentSnapshot.matchesSnapshot(newSnapshot);
return;
} on TestFailure catch (_) {
await saveFailure(currentSnapshot, newSnapshot);
rethrow;
} catch (_) {
rethrow;
}
}