From b35174f8572c26cf0fe531a8887500b5b4685c7c Mon Sep 17 00:00:00 2001 From: StarFleetCPTN Date: Sat, 29 Mar 2025 21:23:52 -0700 Subject: [PATCH] feat: Introduce scheduler and notification enhancements - Integrated new components for job scheduling, including a cron-based scheduler and improved job execution logic. - Refactored job executor to utilize interfaces for better dependency management and testing. - Enhanced notification system with a new Notifier interface, allowing for flexible notification service integration. - Added comprehensive unit tests for job executor, scheduler, and notification components to ensure reliability and correctness. - Updated metadata handling to support new database interfaces, improving testability and maintainability. --- components/notifications/form/form.templ | 2 +- internal/scheduler/job_executor.go | 75 ++- internal/scheduler/job_executor_test.go | 526 +++++++++++++++++++ internal/scheduler/logger_test.go | 206 ++++++++ internal/scheduler/metadata.go | 29 +- internal/scheduler/metadata_test.go | 226 ++++++++ internal/scheduler/notification.go | 42 +- internal/scheduler/notification_test.go | 308 +++++++++++ internal/scheduler/scheduler.go | 210 +++++--- internal/scheduler/scheduler_test.go | 525 ++++++++++++++++++ internal/scheduler/transfer_executor.go | 112 ++-- internal/scheduler/transfer_executor_test.go | 367 +++++++++++++ internal/scheduler/utils.go | 8 +- internal/scheduler/utils_test.go | 165 ++++++ main.go | 36 +- 15 files changed, 2679 insertions(+), 158 deletions(-) create mode 100644 internal/scheduler/job_executor_test.go create mode 100644 internal/scheduler/logger_test.go create mode 100644 internal/scheduler/metadata_test.go create mode 100644 internal/scheduler/notification_test.go create mode 100644 internal/scheduler/scheduler_test.go create mode 100644 internal/scheduler/transfer_executor_test.go create mode 100644 internal/scheduler/utils_test.go diff --git a/components/notifications/form/form.templ b/components/notifications/form/form.templ index 180c729..c7fbc1b 100644 --- a/components/notifications/form/form.templ +++ b/components/notifications/form/form.templ @@ -44,7 +44,7 @@ templ NotificationForm(ctx context.Context, data types.NotificationFormData) { } else { hx-put={ fmt.Sprintf("/admin/settings/notifications/%d", data.NotificationService.ID) } } - hx-target="body"> + hx-target="#notification-form-container">