mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-30 18:22:37 -04:00 
			
		
		
		
	* add lint rule * update usages * stragglers * use dcm * formatting * test ci * Revert "test ci" This reverts commit 8f864c4e4d3a7ec1a7e820b1afb3e801f2e82bc5. * revert whitespace change
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:flutter_test/flutter_test.dart';
 | |
| import 'package:immich_mobile/utils/throttle.dart';
 | |
| import 'package:immich_mobile/utils/debug_print.dart';
 | |
| 
 | |
| class _Counter {
 | |
|   int _count = 0;
 | |
|   _Counter();
 | |
| 
 | |
|   int get count => _count;
 | |
|   void increment() {
 | |
|     dPrint(() => "Counter inside increment: $count");
 | |
|     _count = _count + 1;
 | |
|   }
 | |
| }
 | |
| 
 | |
| void main() {
 | |
|   test('Executes the method immediately if no calls received previously', () async {
 | |
|     var counter = _Counter();
 | |
|     final throttler = Throttler(interval: const Duration(milliseconds: 300));
 | |
|     throttler.run(() => counter.increment());
 | |
|     expect(counter.count, 1);
 | |
|   });
 | |
| 
 | |
|   test('Does not execute calls before throttle interval', () async {
 | |
|     var counter = _Counter();
 | |
|     final throttler = Throttler(interval: const Duration(milliseconds: 100));
 | |
|     throttler.run(() => counter.increment());
 | |
|     throttler.run(() => counter.increment());
 | |
|     throttler.run(() => counter.increment());
 | |
|     throttler.run(() => counter.increment());
 | |
|     throttler.run(() => counter.increment());
 | |
|     await Future.delayed(const Duration(seconds: 1));
 | |
|     expect(counter.count, 1);
 | |
|   });
 | |
| 
 | |
|   test('Executes the method if received in intervals', () async {
 | |
|     var counter = _Counter();
 | |
|     final throttler = Throttler(interval: const Duration(milliseconds: 100));
 | |
|     for (final _ in Iterable<int>.generate(10)) {
 | |
|       throttler.run(() => counter.increment());
 | |
|       await Future.delayed(const Duration(milliseconds: 50));
 | |
|     }
 | |
|     await Future.delayed(const Duration(seconds: 1));
 | |
|     expect(counter.count, 5);
 | |
|   });
 | |
| }
 |