From fa46bf2ba5ca70bd6d117e4be59e26f26a7b6354 Mon Sep 17 00:00:00 2001 From: Karolis Strazdas Date: Mon, 2 Nov 2026 23:57:14 +0200 Subject: [PATCH] fix: integrate merged reader page coverage --- app/pubspec.lock | 4 ++-- app/pubspec.yaml | 2 +- .../reading_activity_integration_test.dart | 22 ++++++------------- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/app/pubspec.lock b/app/pubspec.lock index 240886b5..2ff7532c 100644 --- a/app/pubspec.lock +++ b/app/pubspec.lock @@ -579,8 +579,8 @@ packages: dependency: "direct main" description: path: "." - ref: eafa444a5acf0ea51018a88eb76de3d19f76187a - resolved-ref: eafa444a5acf0ea51018a88eb76de3d19f76187a + ref: fa667ae96c64e2d1d80c06e83d326265673abc75 + resolved-ref: fa667ae96c64e2d1d80c06e83d326265673abc75 url: "https://github.com/PapyrusReader/reader.git" source: git version: "0.0.1" diff --git a/app/pubspec.yaml b/app/pubspec.yaml index bce049dd..cd5b7da2 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -27,7 +27,7 @@ dependencies: papyrus_reader: git: url: https://github.com/PapyrusReader/reader.git - ref: eafa444a5acf0ea51018a88eb76de3d19f76187a + ref: fa667ae96c64e2d1d80c06e83d326265673abc75 epub_pro: ^5.6.0 syncfusion_flutter_pdf: ^32.2.3 dart_mobi: ^1.0.2 diff --git a/app/test/reader/reading_activity_integration_test.dart b/app/test/reader/reading_activity_integration_test.dart index 3bff2e43..f8ca0470 100644 --- a/app/test/reader/reading_activity_integration_test.dart +++ b/app/test/reader/reading_activity_integration_test.dart @@ -13,7 +13,7 @@ import 'package:papyrus_reader/src/engine/epub/worker/epub_worker.dart'; import 'reading_activity_tracker_test.dart' show RecordingRepository; void main() { - testWidgets('actual reader coverage credits consecutive EPUB pages without collapsing a chapter', (tester) async { + testWidgets('pinned reader records two distinct rendered EPUB pages', (tester) async { var now = DateTime.utc(2026, 11, 2, 12); final repository = RecordingRepository(); final tracker = ReadingActivityTracker( @@ -39,7 +39,9 @@ void main() { now = now.add(const Duration(seconds: 10)); await tracker.flush(); final firstPages = repository.records.values.single.coverage.single; - final firstTotal = (firstPages.end - firstPages.start) * firstPages.pagesPerUnit; + expect(first.chapterCount, isNull); + expect(firstPages.estimated, isFalse); + expect((firstPages.end - firstPages.start) * firstPages.pagesPerUnit, 1); var turned = false; final turn = engine.goNext().then((_) => turned = true); @@ -58,19 +60,9 @@ void main() { final coverage = repository.records.values.expand((activity) => activity.coverage).toList(); expect(coverage, hasLength(2)); - if (first.chapterCount != null) { - // The Git-pinned reader emits normalized chapter extents. - expect(coverage.map((extent) => (extent.start, extent.end)), [ - (first.start, first.end), - (second.start, second.end), - ]); - expect(coverage.every((extent) => extent.estimated), isTrue); - final total = coverage.fold(0, (sum, extent) => sum + (extent.end - extent.start) * extent.pagesPerUnit); - expect(total, greaterThan(firstTotal)); - } else { - expect(coverage.map((extent) => extent.key).toSet(), hasLength(2)); - expect(coverage.every((extent) => !extent.estimated && extent.end - extent.start == 1), isTrue); - } + expect(coverage.map((extent) => extent.key).toSet(), hasLength(2)); + expect(coverage.every((extent) => !extent.estimated && extent.end - extent.start == 1), isTrue); + expect(coverage.fold(0, (sum, extent) => sum + extent.pagesPerUnit), 2); }); }