Coverage priorities 1-5: test pure functions, extract interfaces, mock-based handler tests
- Priority 1: Test NewSendEmailTask + NewSendPushTask (5 tests) - Priority 2: Test customHTTPErrorHandler — all 15+ branches (21 tests) - Priority 3: Extract Enqueuer interface + payload builders in worker pkg (5 tests) - Priority 4: Extract ClassifyFile/ComputeRelPath in migrate-encrypt (6 tests) - Priority 5: Define Handler interfaces, refactor to accept them, mock-based tests (14 tests) - Fix .gitignore: /worker instead of worker to stop ignoring internal/worker/ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
47
internal/database/migration_backfill_test.go
Normal file
47
internal/database/migration_backfill_test.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestClassifyCompletion_CompletedAfterDue(t *testing.T) {
|
||||
dueDate := time.Date(2025, 6, 1, 0, 0, 0, 0, time.UTC)
|
||||
completedAt := time.Date(2025, 6, 5, 14, 30, 0, 0, time.UTC) // 4 days after due
|
||||
|
||||
result := classifyCompletion(completedAt, dueDate, 30)
|
||||
|
||||
assert.Equal(t, "overdue_tasks", result)
|
||||
}
|
||||
|
||||
func TestClassifyCompletion_CompletedOnDueDate(t *testing.T) {
|
||||
dueDate := time.Date(2025, 6, 15, 0, 0, 0, 0, time.UTC)
|
||||
completedAt := time.Date(2025, 6, 15, 10, 0, 0, 0, time.UTC) // same day
|
||||
|
||||
result := classifyCompletion(completedAt, dueDate, 30)
|
||||
|
||||
// Completed on the due date: daysBefore == 0, which is <= threshold → due_soon_tasks
|
||||
assert.Equal(t, "due_soon_tasks", result)
|
||||
}
|
||||
|
||||
func TestClassifyCompletion_CompletedWithinThreshold(t *testing.T) {
|
||||
dueDate := time.Date(2025, 7, 1, 0, 0, 0, 0, time.UTC)
|
||||
completedAt := time.Date(2025, 6, 10, 8, 0, 0, 0, time.UTC) // 21 days before due
|
||||
|
||||
result := classifyCompletion(completedAt, dueDate, 30)
|
||||
|
||||
// 21 days before due, within 30-day threshold → due_soon_tasks
|
||||
assert.Equal(t, "due_soon_tasks", result)
|
||||
}
|
||||
|
||||
func TestClassifyCompletion_CompletedBeyondThreshold(t *testing.T) {
|
||||
dueDate := time.Date(2025, 9, 1, 0, 0, 0, 0, time.UTC)
|
||||
completedAt := time.Date(2025, 6, 1, 12, 0, 0, 0, time.UTC) // 92 days before due
|
||||
|
||||
result := classifyCompletion(completedAt, dueDate, 30)
|
||||
|
||||
// 92 days before due, beyond 30-day threshold → upcoming_tasks
|
||||
assert.Equal(t, "upcoming_tasks", result)
|
||||
}
|
||||
Reference in New Issue
Block a user