home added
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:receipity/services/product_repository.dart';
|
||||
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
||||
|
||||
var _dbSeq = 0;
|
||||
var _sqliteReady = false;
|
||||
|
||||
void ensureTestSqlite() {
|
||||
if (_sqliteReady) return;
|
||||
sqfliteFfiInit();
|
||||
databaseFactory = databaseFactoryFfi;
|
||||
_sqliteReady = true;
|
||||
}
|
||||
|
||||
ProductRepository memoryRepository() {
|
||||
ensureTestSqlite();
|
||||
final dir = Directory(p.join('.dart_tool', 'receipity_test_db'))
|
||||
..createSync(recursive: true);
|
||||
final name =
|
||||
'db_${DateTime.now().microsecondsSinceEpoch}_${_dbSeq++}_${Random().nextInt(1 << 32)}.sqlite';
|
||||
return ProductRepository(databasePath: p.join(dir.path, name));
|
||||
}
|
||||
|
||||
Future<void> pumpUntilFound(
|
||||
WidgetTester tester,
|
||||
Finder finder, {
|
||||
int attempts = 40,
|
||||
}) async {
|
||||
for (var i = 0; i < attempts; i++) {
|
||||
await tester.pump();
|
||||
if (finder.evaluate().isNotEmpty) return;
|
||||
await tester.runAsync(
|
||||
() => Future<void>.delayed(const Duration(milliseconds: 20)),
|
||||
);
|
||||
}
|
||||
throw TestFailure('Timed out waiting for $finder');
|
||||
}
|
||||
Reference in New Issue
Block a user