fixed timeUntilStale returning negetive Duration instead of 0

This commit is contained in:
Kingkor Roy Tirtho
2022-04-24 18:47:07 +06:00
parent 1d76c3df3d
commit 421aa85bce
2 changed files with 12 additions and 5 deletions
+12 -2
View File
@@ -2,6 +2,7 @@ import 'package:fl_query/src/core/models.dart';
import 'package:fl_query/src/core/query.dart';
import 'package:fl_query/src/core/query_key.dart';
import 'package:collection/collection.dart';
import 'dart:math';
/// Default query keys hash function.
/// Dummy function just to fill the gaps for original react-query like
@@ -159,7 +160,16 @@ List replaceEqualDeepList(List a, List b, void Function() onEqual) {
return copy;
}
Duration timeUntilStale(DateTime updatedAt, [Duration? staleTime]) =>
updatedAt.add(staleTime ?? Duration.zero).difference(DateTime.now());
Duration timeUntilStale(DateTime updatedAt, [Duration? staleTime]) {
return Duration(
milliseconds: max<int>(
updatedAt
.add(staleTime ?? Duration.zero)
.difference(DateTime.now())
.inMilliseconds,
0,
),
);
}
typedef DataUpdateFunction<TInput, TOutput> = TOutput Function(TInput input);
@@ -397,9 +397,6 @@ void main() {
});
test('should accept unresolved query config in update function', () async {
// test is failing in [QueryObserver.updateResult] called by
// staleTimeout callback. For some reason _currentResult and
// prevResult is shallow equal
final key = queryKey();
;
final observer = QueryObserver<Map<String, dynamic>, dynamic,