Skip to content

Commit 947613f

Browse files
committed
[LOOP-5434] Solopump Demo Scenarios
1 parent 15ce8b2 commit 947613f

File tree

2 files changed

+32
-16
lines changed

2 files changed

+32
-16
lines changed

Loop/Managers/DeviceDataManager.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1227,7 +1227,7 @@ extension DeviceDataManager {
12271227
func deleteTestingPumpData(completion: ((Error?) -> Void)? = nil) {
12281228

12291229
guard let testingPumpManager = pumpManager as? TestingPumpManager else {
1230-
assertionFailure("\(#function) should be invoked only when a testing pump manager is in use")
1230+
completion?(nil)
12311231
return
12321232
}
12331233

Loop/Managers/TestingScenariosManager.swift

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,15 @@ extension TestingScenariosManagerRequirements {
9696
// MARK: - Implementation details
9797

9898
private enum ScenarioLoadingError: LocalizedError {
99-
case noTestingManagersEnabled
99+
case noTestingCGMManagerEnabled
100+
case noTestingPumpManagerEnabled
100101

101102
var errorDescription: String? {
102103
switch self {
103-
case .noTestingManagersEnabled:
104-
return "Testing pump and CGM managers must be enabled to load scenarios"
104+
case .noTestingCGMManagerEnabled:
105+
return "Testing CGM manager must be enabled to load CGM scenarios"
106+
case .noTestingPumpManagerEnabled:
107+
return "Testing pump manager must be enabled to load pump scenarios"
105108
}
106109
}
107110
}
@@ -186,13 +189,28 @@ extension TestingScenariosManagerRequirements {
186189
log.error("%{public}@", String(describing: error))
187190
completion(error)
188191
}
189-
190-
guard
191-
let pumpManager = deviceManager.pumpManager as? TestingPumpManager,
192-
let cgmManager = deviceManager.cgmManager as? TestingCGMManager
193-
else {
194-
bail(with: ScenarioLoadingError.noTestingManagersEnabled)
195-
return
192+
193+
let instance = scenario.instantiate()
194+
195+
var testingCGMManager: TestingCGMManager?
196+
var testingPumpManager: TestingPumpManager?
197+
198+
if instance.hasCGMData {
199+
if let cgmManager = deviceManager.cgmManager as? TestingCGMManager {
200+
testingCGMManager = cgmManager
201+
} else {
202+
bail(with: ScenarioLoadingError.noTestingCGMManagerEnabled)
203+
return
204+
}
205+
}
206+
207+
if instance.hasPumpData {
208+
if let pumpManager = deviceManager.pumpManager as? TestingPumpManager {
209+
testingPumpManager = pumpManager
210+
} else {
211+
bail(with: ScenarioLoadingError.noTestingPumpManagerEnabled)
212+
return
213+
}
196214
}
197215

198216
wipeExistingData { error in
@@ -201,14 +219,12 @@ extension TestingScenariosManagerRequirements {
201219
return
202220
}
203221

204-
let instance = scenario.instantiate()
205-
206222
self.deviceManager.carbStore.addCarbEntries(instance.carbEntries) { result in
207223
switch result {
208224
case .success(_):
209-
pumpManager.reservoirFillFraction = 1.0
210-
pumpManager.injectPumpEvents(instance.pumpEvents)
211-
cgmManager.injectGlucoseSamples(instance.pastGlucoseSamples, futureSamples: instance.futureGlucoseSamples)
225+
testingPumpManager?.reservoirFillFraction = 1.0
226+
testingPumpManager?.injectPumpEvents(instance.pumpEvents)
227+
testingCGMManager?.injectGlucoseSamples(instance.pastGlucoseSamples, futureSamples: instance.futureGlucoseSamples)
212228
self.activeScenario = scenario
213229
completion(nil)
214230
case .failure(let error):

0 commit comments

Comments
 (0)