test: Add basic snapshot test coverage for EventView
This commit adds a basic snapshot test for EventView, and also adds some testing infrastructure to help with mocking NostrDB behavior. Test ---- PASS Device: iOS 17.0 Simulator iOS: 17.0 Damus: This commit Steps: Run `EventViewTests` Results: Snapshot matches baseline reference added
This commit is contained in:
committed by
William Casarin
parent
edb23e4e70
commit
3b76fcb743
66
damusTests/Mocking/MockDamusState.swift
Normal file
66
damusTests/Mocking/MockDamusState.swift
Normal file
@@ -0,0 +1,66 @@
|
||||
//
|
||||
// MockDamusState.swift
|
||||
// damusTests
|
||||
//
|
||||
// Created by Daniel D’Aquino on 2023-10-13.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
@testable import damus
|
||||
|
||||
// Generates a test damus state with configurable mock parameters
|
||||
func generate_test_damus_state(
|
||||
mock_profile_info: [Pubkey: Profile]?
|
||||
) -> DamusState {
|
||||
// Create a unique temporary directory
|
||||
var tempDir: String!
|
||||
do {
|
||||
let fileManager = FileManager.default
|
||||
let temp = fileManager.temporaryDirectory.appendingPathComponent(UUID().uuidString)
|
||||
try fileManager.createDirectory(at: temp, withIntermediateDirectories: true, attributes: nil)
|
||||
tempDir = temp.absoluteString
|
||||
} catch {
|
||||
tempDir = "."
|
||||
}
|
||||
|
||||
print("opening \(tempDir!)")
|
||||
let ndb = Ndb(path: tempDir)!
|
||||
let our_pubkey = test_pubkey
|
||||
let pool = RelayPool(ndb: ndb)
|
||||
let settings = UserSettingsStore()
|
||||
|
||||
let profiles: Profiles = {
|
||||
guard let mock_profile_info, let profiles: Profiles = MockProfiles(mocked_profiles: mock_profile_info, ndb: ndb) else {
|
||||
return Profiles.init(ndb: ndb)
|
||||
}
|
||||
return profiles
|
||||
}()
|
||||
|
||||
let damus = DamusState(pool: pool,
|
||||
keypair: test_keypair,
|
||||
likes: .init(our_pubkey: our_pubkey),
|
||||
boosts: .init(our_pubkey: our_pubkey),
|
||||
contacts: .init(our_pubkey: our_pubkey),
|
||||
profiles: profiles,
|
||||
dms: .init(our_pubkey: our_pubkey),
|
||||
previews: .init(),
|
||||
zaps: .init(our_pubkey: our_pubkey),
|
||||
lnurls: .init(),
|
||||
settings: settings,
|
||||
relay_filters: .init(our_pubkey: our_pubkey),
|
||||
relay_model_cache: .init(),
|
||||
drafts: .init(),
|
||||
events: .init(ndb: ndb),
|
||||
bookmarks: .init(pubkey: our_pubkey),
|
||||
postbox: .init(pool: pool),
|
||||
bootstrap_relays: .init(),
|
||||
replies: .init(our_pubkey: our_pubkey),
|
||||
muted_threads: .init(keypair: test_keypair),
|
||||
wallet: .init(settings: settings),
|
||||
nav: .init(),
|
||||
music: .init(onChange: {_ in }),
|
||||
video: .init(),
|
||||
ndb: ndb)
|
||||
|
||||
return damus
|
||||
}
|
||||
Reference in New Issue
Block a user