use custom golden comparator

This commit is contained in:
Salvatore Giordano
2021-07-22 14:48:42 +02:00
parent fa73c6c2ae
commit 526450d4de
@@ -1,9 +1,36 @@
import 'dart:async';
import 'dart:typed_data';
import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:golden_toolkit/golden_toolkit.dart';
Future<void> testExecutable(FutureOr<void> Function() testMain) async {
await loadAppFonts();
goldenFileComparator =
CustomGoldenFileComparator(Uri.parse('test/src/goldens'));
return testMain();
}
class CustomGoldenFileComparator extends LocalFileComparator {
CustomGoldenFileComparator(Uri testFile) : super(testFile);
@override
Future<bool> compare(Uint8List imageBytes, Uri golden) async {
final result = await GoldenFileComparator.compareLists(
imageBytes,
await getGoldenBytes(golden),
);
if (!result.passed && result.diffPercent > 0.05) {
final error = await generateFailureOutput(result, golden, basedir);
throw FlutterError(error);
}
return result.passed;
}
@override
Future<void> update(Uri golden, Uint8List imageBytes) {
return super.update(golden, imageBytes);
}
}