PluginManagerTests.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import Foundation
  2. import Swinject
  3. import Testing
  4. @testable import Trio
  5. @Suite("Plugin Manager Tests", .serialized) struct PluginManagerTests: Injectable {
  6. let fileStorage = BaseFileStorage()
  7. @Injected() var pluginManager: PluginManager!
  8. let resolver = TrioApp().resolver
  9. init() {
  10. injectServices(resolver)
  11. }
  12. @Test("Can load CGM managers") func testCGMManagerLoad() {
  13. // Given
  14. let cgmLoopManagers = pluginManager.availableCGMManagers
  15. // Then
  16. #expect(!cgmLoopManagers.isEmpty, "Should have available CGM managers")
  17. // When loading valid CGM manager
  18. if let cgmLoop = cgmLoopManagers.first {
  19. let cgmLoopManager = pluginManager.getCGMManagerTypeByIdentifier(cgmLoop.identifier)
  20. #expect(cgmLoopManager != nil, "Should load valid CGM manager")
  21. }
  22. }
  23. @Test("Available managers have valid descriptors") func testManagerDescriptors() {
  24. // Given/When
  25. let cgmManagers = pluginManager.availableCGMManagers
  26. for manager in cgmManagers {
  27. #expect(!manager.identifier.isEmpty, "CGM manager should have non-empty identifier")
  28. #expect(!manager.localizedTitle.isEmpty, "CGM manager should have non-empty title")
  29. }
  30. }
  31. }