📊 Coverage Badge
📑 Coverage Table
github.com/bassista/go_spin/cmd/server/main.go:28: main 0.0%
github.com/bassista/go_spin/cmd/server/main.go:92: createWaitingServer 0.0%
github.com/bassista/go_spin/cmd/server/main.go:107: createGraceHttpServer 0.0%
github.com/bassista/go_spin/internal/api/controller/configuration_controller.go:24: NewConfigurationController 100.0%
github.com/bassista/go_spin/internal/api/controller/configuration_controller.go:31: GetConfiguration 100.0%
github.com/bassista/go_spin/internal/api/controller/container_controller.go:24: NewContainerController 100.0%
github.com/bassista/go_spin/internal/api/controller/container_controller.go:38: AllContainers 100.0%
github.com/bassista/go_spin/internal/api/controller/container_controller.go:44: CreateOrUpdateContainer 100.0%
github.com/bassista/go_spin/internal/api/controller/container_controller.go:50: DeleteContainer 82.4%
github.com/bassista/go_spin/internal/api/controller/container_controller.go:77: Ready 78.3%
github.com/bassista/go_spin/internal/api/controller/container_crud.go:20: All 69.2%
github.com/bassista/go_spin/internal/api/controller/container_crud.go:41: Add 100.0%
github.com/bassista/go_spin/internal/api/controller/container_crud.go:49: Remove 100.0%
github.com/bassista/go_spin/internal/api/controller/container_crud.go:62: Validate 100.0%
github.com/bassista/go_spin/internal/api/controller/crud_controller.go:30: RegisterCrudRoutes 0.0%
github.com/bassista/go_spin/internal/api/controller/crud_controller.go:37: GetAll 60.0%
github.com/bassista/go_spin/internal/api/controller/crud_controller.go:47: CreateOrUpdate 100.0%
github.com/bassista/go_spin/internal/api/controller/crud_controller.go:68: Delete 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:25: NewGroupController 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:42: AllGroups 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:48: CreateOrUpdateGroup 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:54: DeleteGroup 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:80: StartGroup 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:130: StopGroup 100.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:174: startContainerInBackground 80.0%
github.com/bassista/go_spin/internal/api/controller/group_controller.go:186: stopContainerInBackground 80.0%
github.com/bassista/go_spin/internal/api/controller/group_crud.go:14: All 75.0%
github.com/bassista/go_spin/internal/api/controller/group_crud.go:22: Add 100.0%
github.com/bassista/go_spin/internal/api/controller/group_crud.go:30: Remove 100.0%
github.com/bassista/go_spin/internal/api/controller/group_crud.go:40: sanitizeGroups 100.0%
github.com/bassista/go_spin/internal/api/controller/group_crud.go:66: Validate 100.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:32: NewRuntimeController 83.3%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:51: IsRunning 92.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:96: StartContainer 73.1%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:147: StopContainer 73.1%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:198: stopContainerInBackground 80.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:212: WaitingPage 77.8%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:263: findContainer 85.7%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:279: findGroup 100.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:289: handleContainerWaitingPage 80.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:313: handleGroupWaitingPage 80.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:370: startContainerInBackground 100.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:382: serveWaitingPage 100.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:392: ListContainers 100.0%
github.com/bassista/go_spin/internal/api/controller/runtime_controller.go:412: AllStats 83.3%
github.com/bassista/go_spin/internal/api/controller/schedule_controller.go:20: NewScheduleController 100.0%
github.com/bassista/go_spin/internal/api/controller/schedule_controller.go:34: AllSchedules 100.0%
github.com/bassista/go_spin/internal/api/controller/schedule_controller.go:40: CreateOrUpdateSchedule 100.0%
github.com/bassista/go_spin/internal/api/controller/schedule_controller.go:46: DeleteSchedule 82.4%
github.com/bassista/go_spin/internal/api/controller/schedule_crud.go:14: All 75.0%
github.com/bassista/go_spin/internal/api/controller/schedule_crud.go:22: Add 100.0%
github.com/bassista/go_spin/internal/api/controller/schedule_crud.go:30: Remove 100.0%
github.com/bassista/go_spin/internal/api/controller/schedule_crud.go:43: Validate 100.0%
github.com/bassista/go_spin/internal/api/middleware/cors.go:12: CORSMiddleware 100.0%
github.com/bassista/go_spin/internal/api/middleware/honeybadger.go:15: HoneybadgerMiddleware 0.0%
github.com/bassista/go_spin/internal/api/middleware/timeout.go:13: RequestTimeout 100.0%
github.com/bassista/go_spin/internal/api/route/configuration_route.go:11: NewConfigurationRouter 0.0%
github.com/bassista/go_spin/internal/api/route/container_route.go:10: NewContainerRouter 0.0%
github.com/bassista/go_spin/internal/api/route/group_route.go:10: NewGroupRouter 0.0%
github.com/bassista/go_spin/internal/api/route/route.go:12: SetupRoutes 0.0%
github.com/bassista/go_spin/internal/api/route/runtime_route.go:10: NewRuntimeRouter 100.0%
github.com/bassista/go_spin/internal/api/route/schedule_route.go:10: NewScheduleRouter 0.0%
github.com/bassista/go_spin/internal/api/route/ui_route.go:12: NewUIRouter 0.0%
github.com/bassista/go_spin/internal/app/app.go:29: New 100.0%
github.com/bassista/go_spin/internal/app/app.go:62: Shutdown 100.0%
github.com/bassista/go_spin/internal/app/app.go:80: StartWatchers 41.2%
github.com/bassista/go_spin/internal/cache/scheduler.go:14: StartPersistenceScheduler 100.0%
github.com/bassista/go_spin/internal/cache/scheduler.go:46: flushCache 88.9%
github.com/bassista/go_spin/internal/cache/store.go:26: NewStore 100.0%
github.com/bassista/go_spin/internal/cache/store.go:31: MarkDirty 100.0%
github.com/bassista/go_spin/internal/cache/store.go:38: IsDirty 100.0%
github.com/bassista/go_spin/internal/cache/store.go:45: ClearDirty 100.0%
github.com/bassista/go_spin/internal/cache/store.go:52: GetLastUpdate 100.0%
github.com/bassista/go_spin/internal/cache/store.go:59: SetLastUpdate 100.0%
github.com/bassista/go_spin/internal/cache/store.go:66: Snapshot 100.0%
github.com/bassista/go_spin/internal/cache/store.go:73: Replace 88.9%
github.com/bassista/go_spin/internal/cache/store.go:88: AddContainer 95.8%
github.com/bassista/go_spin/internal/cache/store.go:133: RemoveContainer 93.8%
github.com/bassista/go_spin/internal/cache/store.go:191: AddGroup 95.7%
github.com/bassista/go_spin/internal/cache/store.go:233: RemoveGroup 91.3%
github.com/bassista/go_spin/internal/cache/store.go:277: AddSchedule 93.8%
github.com/bassista/go_spin/internal/cache/store.go:307: RemoveSchedule 100.0%
github.com/bassista/go_spin/internal/cache/store.go:332: cloneData 71.4%
github.com/bassista/go_spin/internal/cache/store.go:345: cloneContainer 71.4%
github.com/bassista/go_spin/internal/cache/store.go:358: cloneGroup 71.4%
github.com/bassista/go_spin/internal/cache/store.go:371: cloneSchedule 71.4%
github.com/bassista/go_spin/internal/config/config.go:56: LoadConfig 93.8%
github.com/bassista/go_spin/internal/config/config.go:160: dataFileExistenceCheck 75.0%
github.com/bassista/go_spin/internal/config/config.go:190: validate 100.0%
github.com/bassista/go_spin/internal/config/config.go:234: getEnvOrDefault 100.0%
github.com/bassista/go_spin/internal/config/config.go:241: getEnvOrViperPort 100.0%
github.com/bassista/go_spin/internal/logger/logger.go:12: init 71.4%
github.com/bassista/go_spin/internal/logger/logger.go:31: WithComponent 100.0%
github.com/bassista/go_spin/internal/repository/json_repository.go:37: NewJSONRepository 87.5%
github.com/bassista/go_spin/internal/repository/json_repository.go:54: Load 86.7%
github.com/bassista/go_spin/internal/repository/json_repository.go:82: loadUnlocked 100.0%
github.com/bassista/go_spin/internal/repository/json_repository.go:107: removeSchedulesWithMissingContainers 95.2%
github.com/bassista/go_spin/internal/repository/json_repository.go:145: Save 83.3%
github.com/bassista/go_spin/internal/repository/json_repository.go:189: saveUnlocked 72.2%
github.com/bassista/go_spin/internal/repository/json_repository.go:228: StartWatcher 80.0%
github.com/bassista/go_spin/internal/repository/json_repository.go:304: MakeWatcherCallback 100.0%
github.com/bassista/go_spin/internal/repository/model.go:57: ApplyDefaults 100.0%
github.com/bassista/go_spin/internal/repository/model.go:72: applyDefaults 100.0%
github.com/bassista/go_spin/internal/repository/model.go:82: applyDefaults 100.0%
github.com/bassista/go_spin/internal/repository/model.go:88: applyDefaults 100.0%
github.com/bassista/go_spin/internal/repository/model.go:99: applyDefaults 100.0%
github.com/bassista/go_spin/internal/repository/model.go:111: AreDataDocumentsEqual 75.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:30: NewDockerRuntime 75.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:40: NewDockerRuntimeWithClient 100.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:44: IsRunning 100.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:65: Start 100.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:76: Stop 100.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:90: ListContainers 100.0%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:114: Stats 83.3%
github.com/bassista/go_spin/internal/runtime/docker_runtime.go:151: calculateCPUPercent 83.3%
github.com/bassista/go_spin/internal/runtime/factory.go:17: NewRuntimeFromConfig 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:18: NewMemoryRuntime 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:22: NewMemoryRuntimeFromDocument 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:35: IsRunning 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:43: Start 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:51: Stop 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:61: ListContainers 100.0%
github.com/bassista/go_spin/internal/runtime/memory_runtime.go:74: Stats 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:38: NewPollingScheduler 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:52: Start 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:69: tick 79.3%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:213: getFlags 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:219: setFlags 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:225: dayKey 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:229: expandScheduleTargets 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:265: isTimerActiveNow 100.0%
github.com/bassista/go_spin/internal/scheduler/polling_scheduler.go:298: containsInt 100.0%
total: (statements) 81.7%