feat: Mise à jour à la version 1.1.19 et amélioration du cache/pagination pour la sélection d'équipements
- Mise à jour de la version de l'application à `1.1.19` dans `app_version.dart` et `version.json`. - Correction d'un bug de cache dans `EquipmentSelectionDialog` qui empêchait l'affichage de certains équipements lors de la sélection. - Introduction d'une fonction utilitaire `shouldAutoLoadNextPage` et de tests unitaires associés pour fiabiliser le chargement automatique des données. - Ajout d'une gestion de préchargement automatique dans `EquipmentSelectionDialog` lorsque la liste n'est pas assez longue pour activer le défilement (évite les vues tronquées). - Amélioration de `ContainerFormPage` pour forcer le rechargement complet de la liste des équipements, évitant ainsi les conflits avec les états de pagination d'autres écrans. - Optimisation du chargement des conflits de disponibilité et des quantités via un chargement par lots (batch). - Nettoyage du code et amélioration de la lisibilité des fichiers `container_form_page.dart` et `equipment_selection_dialog.dart`.
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import 'package:em2rp/views/widgets/event/equipment_selection_pagination.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
group('shouldAutoLoadNextPage', () {
|
||||
test('returns false when there is no more data', () {
|
||||
final result = shouldAutoLoadNextPage(
|
||||
hasMoreData: false,
|
||||
isLoadingMore: false,
|
||||
hasClients: true,
|
||||
maxScrollExtent: 100,
|
||||
);
|
||||
|
||||
expect(result, isFalse);
|
||||
});
|
||||
|
||||
test('returns false while a page is already loading', () {
|
||||
final result = shouldAutoLoadNextPage(
|
||||
hasMoreData: true,
|
||||
isLoadingMore: true,
|
||||
hasClients: true,
|
||||
maxScrollExtent: 0,
|
||||
);
|
||||
|
||||
expect(result, isFalse);
|
||||
});
|
||||
|
||||
test('returns true when list has no scroll client yet', () {
|
||||
final result = shouldAutoLoadNextPage(
|
||||
hasMoreData: true,
|
||||
isLoadingMore: false,
|
||||
hasClients: false,
|
||||
maxScrollExtent: 0,
|
||||
);
|
||||
|
||||
expect(result, isTrue);
|
||||
});
|
||||
|
||||
test('returns true when list is not scrollable yet', () {
|
||||
final result = shouldAutoLoadNextPage(
|
||||
hasMoreData: true,
|
||||
isLoadingMore: false,
|
||||
hasClients: true,
|
||||
maxScrollExtent: 0,
|
||||
);
|
||||
|
||||
expect(result, isTrue);
|
||||
});
|
||||
|
||||
test('returns false when list is scrollable', () {
|
||||
final result = shouldAutoLoadNextPage(
|
||||
hasMoreData: true,
|
||||
isLoadingMore: false,
|
||||
hasClients: true,
|
||||
maxScrollExtent: 250,
|
||||
);
|
||||
|
||||
expect(result, isFalse);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user