1
0
mirror of git://jb55.com/damus synced 2024-09-29 00:10:43 +00:00
damus/damusTests
Daniel D’Aquino 46185c55d1 Chunk home filters to avoid hitting max filter item limits
When a user is following several accounts, they may get a stale feed
caused by the subscription request being rejected by relays (due to max filter item limits).

This commit implements a fix that gets around the issue by
creating several chunked filters for the home feed event and contact
metadata subscriptions.

This is a short to medium-term practical fix, where we get around the
practical limitations imposed by most relays. In the future we should
work on longer-term solutions, which will likely require protocol improvements

Main Test
---------

Procedure:
1. Login with Elsat's npub (Or some account that follows about 2K people)
2. Check the home feed. There should be fresh notes.

REPRO:
Device: iPhone 15 simulator
iOS: 17.4
Damus: 1.9 (3) (0d9954290a)
Results:
- No fresh notes, most recent post is from several hours ago (Feed is stale)

FIX TEST:
Device: iPhone 15 simulator
iOS: 17.4
Damus: This commit
Results:
- Fresh notes appear, most recent post is from a few seconds ago.

Other testing:
--------------

- New automated test passing
- All other automated tests passing
- Tested scrolling down the feed on these conditions:
  - Device: iPhone 13 Mini
  - iOS: 17.4.1
  - Accounts:
    - One with about 160 contacts and 10 relays (Daniel D’Aquino)
    - One with about 1K+ contacts and 9 relays (Freedom Smuggler)
    - One with about 981 contacts and 6 relays (jb55)
    - Elsat's account (2K+ accounts and 8 relays)
  - Result: None of those were stale

Changelog-Fixed: Fix stale feed issue when follow list is too big
Closes: https://github.com/damus-io/damus/issues/2194
Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
Reviewed-by: William Casarin <jb55@jb55.com>
2024-05-13 10:56:15 -07:00
..
__Snapshots__/EventViewTests test: Add basic snapshot test coverage for EventView 2023-10-16 03:13:28 +02:00
Assets privacy: add function to strip location data from photos 2024-02-20 11:17:57 -08:00
Mocking Mute: Add user_keypair to MutelistManager 2024-05-07 18:05:45 -07:00
Models mute: adding new structs/enums for new mute list 2024-01-25 12:12:57 -08:00
Util nip42: add initial relay auth support 2024-01-05 10:36:03 -08:00
AuthIntegrationTests.swift test: disable broken auth test 2024-05-07 14:07:14 -07:00
Bech32ObjectTests.swift nip19: add high level bech32 encoding method 2024-01-16 16:55:31 -08:00
Bech32Tests.swift ndb: switch to nostrdb notes 2023-08-03 13:20:36 -07:00
ContentParserTests.swift content: add utf8 char at url left boundary test 2023-07-16 11:46:23 -07:00
DamusCacheManagerTests.swift storage: Improve clear cache functionality 2023-10-07 16:42:08 -07:00
DamusPurpleImpendingExpirationTests.swift Add Damus Purple impending expiry notification support 2024-02-28 23:20:48 -08:00
damusTests.swift nip10: marker replies 2024-05-09 13:33:04 -07:00
DMTests.swift Fix old notifications always appearing on first start 2023-08-06 09:22:28 -07:00
EventGroupViewTests.swift test: attempt to fix broken tests 2023-11-13 15:03:17 -08:00
EventViewTests.swift tests: disable snapshot tests for now 2023-11-14 07:13:51 -08:00
FormatTests.swift Fix localization issues, add tests, import translations, and add zh-CN and zh-TW 2023-02-24 12:44:54 -08:00
HashtagTests.swift Fix Issue #1820 Hashtags including U+5009 to U+500D are not correctly parsed 2023-12-22 13:59:31 -08:00
ImageMetadataTest.swift add performance upgrades to media picker 2024-02-29 12:12:22 +00:00
InvoiceTests.swift Create helper extensions for Block and update tests for the Block helper model 2023-09-03 18:02:32 -07:00
KeychainStorageTests.swift Replace Vault dependency with @KeychainStorage property wrapper 2023-05-04 15:57:02 -07:00
LikeTests.swift ndb: switch to nostrdb notes 2023-08-03 13:20:36 -07:00
ListTests.swift mute: migrate Lists.swift to use new MuteItem 2024-01-25 12:12:59 -08:00
LocalizationUtilTests.swift Fix localization issues and export strings for translation 2023-07-14 09:34:29 -07:00
LongPostTests.swift Merge improved mute functionality from Charlie 2024-02-26 12:02:41 -08:00
MutingTests.swift test: add missing mute test file 2024-05-07 18:13:23 -07:00
NIP10Tests.swift nip10: simplify and fix reply-to-root bugs 2024-05-11 09:19:22 -07:00
NIP19Tests.swift ndb: switch to nostrdb notes 2023-08-03 13:20:36 -07:00
NostrEventTests.swift Fix image links appearing with escaped slashes 2023-08-18 08:41:21 -07:00
NostrFilterTests.swift Chunk home filters to avoid hitting max filter item limits 2024-05-13 10:56:15 -07:00
NostrScriptTests.swift tests: Disable NostrScriptTests.test_bool_set to reduce noise on CI/CD 2023-12-22 13:56:57 -08:00
NoteContentViewTests.swift nip19: add bech32 TLV url parsing 2024-01-22 10:49:33 -08:00
PostViewTests.swift mentions: fix regression on char handling after mention 2024-01-25 14:11:31 -08:00
ProfileViewTests.swift test: switch test to use failable transactions 2024-01-10 15:38:21 -08:00
RelayPoolTests.swift handle extra slashes for relay url 2023-12-16 17:43:00 -08:00
RelayURLTests.swift Fix relay URL trailing slash issues 2024-03-25 09:24:17 +01:00
ReplyDescriptionTests.swift Add image uploader 2023-03-15 17:12:05 -06:00
ReplyTests.swift nip10: simplify and fix reply-to-root bugs 2024-05-11 09:19:22 -07:00
RequestTests.swift nip42: add initial relay auth support 2024-01-05 10:36:03 -08:00
TimeAgoTests.swift Fix localization issues, add tests, import translations, and add zh-CN and zh-TW 2023-02-24 12:44:54 -08:00
TranslationTests.swift translate: implement string distance for close matches 2024-02-19 13:10:13 -08:00
TrieTests.swift Add trie-based user search cache to replace non-performant linear scans 2023-07-03 12:06:01 -07:00
UrlTests.swift purple: add staging option to DamusPurpleURL 2024-01-28 16:09:14 -08:00
UserSearchAppendTests.swift posting: fix issue with username and multiple emojis 2023-09-11 07:48:36 -07:00
UserSearchCacheTests.swift test: temporarily disable UserCacheManagerTests 2023-10-07 14:35:24 -07:00
WalletConnectTests.swift Remove no-op performance tests that were causing issues 2024-04-17 15:05:35 -07:00
ZapTests.swift Fix test target build error 2024-01-10 11:06:32 -08:00