mnemo_cards/mnemo_cards_backend/lib/cron/test_generator.dart

47 lines
1.2 KiB
Dart
Raw Normal View History

2025-11-16 11:25:27 +00:00
import 'package:isar/isar.dart';
import 'package:mnemo_cards_backend/cron/task.dart';
import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
import 'package:mnemo_cards_backend/tests/test_manager.dart';
import '../main.dart';
class TestGeneratorTask with Task {
final TestManager _testManager;
TestGeneratorTask(this._testManager);
@override
String get name => 'test_gen';
@override
Future<void> task() async {
print('Refreshing custom test data...');
try {
await _testManager.refreshCustomCreationTestsData();
} catch (e) {
print(e);
}
print('Refreshed custom test data');
final models = await isar.txn(() => isar.cardPackModels.where().findAll());
print('Will generate tests for ${models.length} packs');
int ok = 0;
for (final model in models) {
try {
await _testManager.updateGeneratedTests(model);
ok++;
} catch (e) {
print(e);
}
}
print('Generated tests for $ok packs');
print('Deleting old test stats');
final count = await isar.writeTxn(() {
return isar.testStatisticsModels.filter().testIsNull().deleteAll();
});
print('deleted $count old test stats');
}
@override
int get intervalSeconds => 60 * 30;
}