mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
test(apple): CoreGateway seam, XCTest suite, and CI
- Introduce a CoreGateway protocol so feature models depend on a seam (CoreRepository conforms); enables faking the core in tests - Add a VniDropTests target with 42 tests mirroring the KMP suites: approval coordinator, send/receive/settings/app models, preferences, file previews, invitation decode, message queue, error mapping - Add a fake gateway/file-system/device-info and fixtures - Add .github/workflows/apple.yml: build the Rust core, generate the project, and run the tests on an iOS Simulator
This commit is contained in:
@@ -9,8 +9,9 @@ import Combine
|
||||
/// UniFFI calls block (the core drives its own runtime via `block_on`), so they
|
||||
/// run on a background queue and results are hopped back to the main actor.
|
||||
@MainActor
|
||||
final class CoreRepository: ObservableObject {
|
||||
final class CoreRepository: ObservableObject, CoreGateway {
|
||||
@Published private(set) var state = CoreState()
|
||||
var statePublisher: AnyPublisher<CoreState, Never> { $state.eraseToAnyPublisher() }
|
||||
|
||||
private let signalsSubject = PassthroughSubject<CoreSignal, Never>()
|
||||
/// Coalesced change hints; subscribe to react to approval/history/transfer changes.
|
||||
|
||||
Reference in New Issue
Block a user