Adding tests for deleting events
This commit is contained in:
parent
883df92484
commit
96ebf45dcc
@ -90,7 +90,7 @@ class EventsViewModel: ACHudContainer {
|
|||||||
func deleteEvent(_ event: EventModel) async {
|
func deleteEvent(_ event: EventModel) async {
|
||||||
|
|
||||||
await eventOperation {
|
await eventOperation {
|
||||||
try await self.storageService.deleteNote(id: event.id, for: self.vehicle.getNumber())
|
try await self.storageService.remove(event: event.id, from: self.vehicle.getNumber())
|
||||||
} apiOperation: {
|
} apiOperation: {
|
||||||
try await self.apiService.remove(event: event.id)
|
try await self.apiService.remove(event: event.id)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ struct StorageServiceTests {
|
|||||||
let testLat: Double = 42
|
let testLat: Double = 42
|
||||||
let testLon: Double = 24
|
let testLon: Double = 24
|
||||||
|
|
||||||
let settingsServiceMock = MockSettingsServiceProtocol()
|
let settingsServiceMock: MockSettingsServiceProtocol
|
||||||
let storageService: StorageService
|
let storageService: StorageService
|
||||||
|
|
||||||
init() async throws {
|
init() async throws {
|
||||||
@ -29,6 +29,7 @@ struct StorageServiceTests {
|
|||||||
var config: Realm.Configuration = .defaultConfiguration
|
var config: Realm.Configuration = .defaultConfiguration
|
||||||
config.inMemoryIdentifier = UUID().uuidString
|
config.inMemoryIdentifier = UUID().uuidString
|
||||||
|
|
||||||
|
settingsServiceMock = MockSettingsServiceProtocol()
|
||||||
await ServiceContainer.shared.register(SettingsServiceProtocol.self, instance: settingsServiceMock)
|
await ServiceContainer.shared.register(SettingsServiceProtocol.self, instance: settingsServiceMock)
|
||||||
|
|
||||||
self.storageService = try await StorageService(config: config)
|
self.storageService = try await StorageService(config: config)
|
||||||
|
|||||||
@ -77,4 +77,42 @@ struct EventsTests {
|
|||||||
#expect(viewModel.events.first?.id == VehicleEventDto.validId)
|
#expect(viewModel.events.first?.id == VehicleEventDto.validId)
|
||||||
#expect(viewModel.hud == nil)
|
#expect(viewModel.hud == nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test("Delete event", arguments: [true, false])
|
||||||
|
mutating func deleteEvent(isUnrecognized: Bool) async throws {
|
||||||
|
|
||||||
|
let vehicleWithEvent: VehicleDto = isUnrecognized ? unrecognizedVehicleWithEvent : vehicleWithEvent
|
||||||
|
let vehicle: VehicleDto = isUnrecognized ? .unrecognized : .normal
|
||||||
|
|
||||||
|
given(apiServiceMock)
|
||||||
|
.remove(event: .value(VehicleEventDto.validId))
|
||||||
|
.willReturn(.normal)
|
||||||
|
|
||||||
|
given(storageServiceMock)
|
||||||
|
.updateVehicleIfExists(dto: .value(vehicle))
|
||||||
|
.willReturn()
|
||||||
|
|
||||||
|
given(storageServiceMock)
|
||||||
|
.remove(event: .value(VehicleEventDto.validId), from: .value(VehicleDto.validNumber))
|
||||||
|
.willReturn(.unrecognized)
|
||||||
|
|
||||||
|
viewModel = EventsViewModel(vehicle: vehicleWithEvent)
|
||||||
|
await viewModel.deleteEvent(VehicleEventDto.valid.viewModel)
|
||||||
|
|
||||||
|
verify(apiServiceMock)
|
||||||
|
.remove(event: .any)
|
||||||
|
.called(isUnrecognized ? .never : .once)
|
||||||
|
|
||||||
|
verify(storageServiceMock)
|
||||||
|
.updateVehicleIfExists(dto: .any)
|
||||||
|
.called(isUnrecognized ? .never : .once)
|
||||||
|
|
||||||
|
verify(storageServiceMock)
|
||||||
|
.remove(event: .any, from: .any)
|
||||||
|
.called(isUnrecognized ? .once : .never)
|
||||||
|
|
||||||
|
#expect(viewModel.vehicle.events.isEmpty)
|
||||||
|
#expect(viewModel.events.isEmpty)
|
||||||
|
#expect(viewModel.hud == nil)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user