mirror of
https://github.com/KevinMidboe/immich.git
synced 2025-10-29 17:40:28 +00:00
feature(mobile): sync assets, albums & users to local database on device (#1759)
* feature(mobile): sync assets, albums & users to local database on device * try to fix tests * move DB sync operations to new SyncService * clear db on user logout * fix reason for endless loading timeline * fix error when deleting album * fix thumbnail of device albums * add a few comments * fix Hive box not open in album service when loading local assets * adjust tests to int IDs * fix bug: show all albums when Recent is selected * update generated api * reworked Recents album isAll handling * guard against wrongly interleaved sync operations * fix: timeline asset ordering (sort asset state by created at) * fix: sort assets in albums by created at
This commit is contained in:
committed by
GitHub
parent
8f11529a75
commit
8708867c1c
50
mobile/test/diff_test.dart
Normal file
50
mobile/test/diff_test.dart
Normal file
@@ -0,0 +1,50 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:immich_mobile/utils/diff.dart';
|
||||
|
||||
void main() {
|
||||
final List<int> listA = [1, 2, 3, 4, 6];
|
||||
final List<int> listB = [1, 3, 5, 7];
|
||||
|
||||
group('Test grouped', () {
|
||||
test('test partial overlap', () async {
|
||||
final List<int> onlyInA = [];
|
||||
final List<int> onlyInB = [];
|
||||
final List<int> inBoth = [];
|
||||
final changes = await diffSortedLists(
|
||||
listA,
|
||||
listB,
|
||||
compare: (int a, int b) => a.compareTo(b),
|
||||
both: (int a, int b) {
|
||||
inBoth.add(b);
|
||||
return false;
|
||||
},
|
||||
onlyFirst: (int a) => onlyInA.add(a),
|
||||
onlySecond: (int b) => onlyInB.add(b),
|
||||
);
|
||||
expect(changes, true);
|
||||
expect(onlyInA, [2, 4, 6]);
|
||||
expect(onlyInB, [5, 7]);
|
||||
expect(inBoth, [1, 3]);
|
||||
});
|
||||
test('test partial overlap sync', () {
|
||||
final List<int> onlyInA = [];
|
||||
final List<int> onlyInB = [];
|
||||
final List<int> inBoth = [];
|
||||
final changes = diffSortedListsSync(
|
||||
listA,
|
||||
listB,
|
||||
compare: (int a, int b) => a.compareTo(b),
|
||||
both: (int a, int b) {
|
||||
inBoth.add(b);
|
||||
return false;
|
||||
},
|
||||
onlyFirst: (int a) => onlyInA.add(a),
|
||||
onlySecond: (int b) => onlyInB.add(b),
|
||||
);
|
||||
expect(changes, true);
|
||||
expect(onlyInA, [2, 4, 6]);
|
||||
expect(onlyInB, [5, 7]);
|
||||
expect(inBoth, [1, 3]);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user