From 685e3b6646d61e04b550e95367386b3eb5806523 Mon Sep 17 00:00:00 2001 From: Penlane Date: Sat, 15 Aug 2026 14:00:14 +0200 Subject: [PATCH] test(mobile): add tests for repo asset origin filter --- .../timeline_repository_test.dart | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/mobile/test/medium/repositories/timeline_repository_test.dart b/mobile/test/medium/repositories/timeline_repository_test.dart index 6fecf0e26d..8ed27327a2 100644 --- a/mobile/test/medium/repositories/timeline_repository_test.dart +++ b/mobile/test/medium/repositories/timeline_repository_test.dart @@ -102,4 +102,34 @@ void main() { expect(remote.localId, local.id); }); }); + + group('asset origin filter', () { + test('remoteOnly filter includes exactly one asset', () async { + final user = await ctx.newUser(); + const checksum = 'remote-checksum'; + final remote = await ctx.newRemoteAsset(ownerId: user.id, checksum: checksum); + final local = await ctx.newLocalAsset(checksum: checksum); + final album = await ctx.newLocalAlbum(backupSelection: .selected); + await ctx.newLocalAlbumAsset(albumId: album.id, assetId: local.id); + + final assets = await sut.main([user.id], .day, .remoteOnly).assetSource(0, 10); + + expect(assets, hasLength(1)); + expect((assets.single as RemoteAsset).id, remote.id); + }); + + test('localOnly filter includes exactly one asset', () async { + final user = await ctx.newUser(); + const checksum = 'local-checksum'; + await ctx.newRemoteAsset(ownerId: user.id, checksum: checksum); + final local = await ctx.newLocalAsset(checksum: checksum); + final album = await ctx.newLocalAlbum(backupSelection: .selected); + await ctx.newLocalAlbumAsset(albumId: album.id, assetId: local.id); + + final assets = await sut.main([user.id], .day, .localOnly).assetSource(0, 10); + + expect(assets, hasLength(1)); + expect((assets.single as LocalAsset).id, local.id); + }); +}); }