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:
Trey T
2026-04-01 20:30:09 -05:00
parent 00fd674b56
commit bec880886b
83 changed files with 19569 additions and 730 deletions

View File

@@ -19,7 +19,7 @@ func TestUserRepository_Create(t *testing.T) {
Email: "test@example.com",
IsActive: true,
}
user.SetPassword("password123")
user.SetPassword("Password123")
err := repo.Create(user)
require.NoError(t, err)
@@ -31,7 +31,7 @@ func TestUserRepository_FindByID(t *testing.T) {
repo := NewUserRepository(db)
// Create user
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "password123")
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "Password123")
// Find by ID
found, err := repo.FindByID(user.ID)
@@ -54,7 +54,7 @@ func TestUserRepository_FindByUsername(t *testing.T) {
repo := NewUserRepository(db)
// Create user
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "password123")
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "Password123")
// Find by username
found, err := repo.FindByUsername("testuser")
@@ -67,7 +67,7 @@ func TestUserRepository_FindByEmail(t *testing.T) {
repo := NewUserRepository(db)
// Create user
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "password123")
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "Password123")
// Find by email
found, err := repo.FindByEmail("test@example.com")
@@ -80,7 +80,7 @@ func TestUserRepository_FindByUsernameOrEmail(t *testing.T) {
repo := NewUserRepository(db)
// Create user
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "password123")
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "Password123")
tests := []struct {
name string
@@ -105,7 +105,7 @@ func TestUserRepository_Update(t *testing.T) {
repo := NewUserRepository(db)
// Create user
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "password123")
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "Password123")
// Update user
user.FirstName = "John"
@@ -125,7 +125,7 @@ func TestUserRepository_ExistsByUsername(t *testing.T) {
repo := NewUserRepository(db)
// Create user
testutil.CreateTestUser(t, db, "existinguser", "existing@example.com", "password123")
testutil.CreateTestUser(t, db, "existinguser", "existing@example.com", "Password123")
tests := []struct {
name string
@@ -150,7 +150,7 @@ func TestUserRepository_ExistsByEmail(t *testing.T) {
repo := NewUserRepository(db)
// Create user
testutil.CreateTestUser(t, db, "existinguser", "existing@example.com", "password123")
testutil.CreateTestUser(t, db, "existinguser", "existing@example.com", "Password123")
tests := []struct {
name string
@@ -175,7 +175,7 @@ func TestUserRepository_GetOrCreateProfile(t *testing.T) {
repo := NewUserRepository(db)
// Create user
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "password123")
user := testutil.CreateTestUser(t, db, "testuser", "test@example.com", "Password123")
// First call should create
profile1, err := repo.GetOrCreateProfile(user.ID)
@@ -193,14 +193,14 @@ func TestUserRepository_FindAuthProvider(t *testing.T) {
repo := NewUserRepository(db)
t.Run("email user", func(t *testing.T) {
user := testutil.CreateTestUser(t, db, "emailuser", "email@test.com", "password123")
user := testutil.CreateTestUser(t, db, "emailuser", "email@test.com", "Password123")
provider, err := repo.FindAuthProvider(user.ID)
require.NoError(t, err)
assert.Equal(t, "email", provider)
})
t.Run("apple user", func(t *testing.T) {
user := testutil.CreateTestUser(t, db, "appleuser", "apple@test.com", "password123")
user := testutil.CreateTestUser(t, db, "appleuser", "apple@test.com", "Password123")
appleAuth := &models.AppleSocialAuth{
UserID: user.ID,
AppleID: "apple_sub_test",
@@ -214,7 +214,7 @@ func TestUserRepository_FindAuthProvider(t *testing.T) {
})
t.Run("google user", func(t *testing.T) {
user := testutil.CreateTestUser(t, db, "googleuser", "google@test.com", "password123")
user := testutil.CreateTestUser(t, db, "googleuser", "google@test.com", "Password123")
googleAuth := &models.GoogleSocialAuth{
UserID: user.ID,
GoogleID: "google_sub_test",
@@ -233,7 +233,7 @@ func TestUserRepository_DeleteUserCascade(t *testing.T) {
db := testutil.SetupTestDB(t)
repo := NewUserRepository(db)
user := testutil.CreateTestUser(t, db, "deletebare", "deletebare@test.com", "password123")
user := testutil.CreateTestUser(t, db, "deletebare", "deletebare@test.com", "Password123")
// Create profile and token
profile := &models.UserProfile{UserID: user.ID, Verified: true}
@@ -271,7 +271,7 @@ func TestUserRepository_DeleteUserCascade(t *testing.T) {
db := testutil.SetupTestDB(t)
repo := NewUserRepository(db)
user := testutil.CreateTestUser(t, db, "deletefiles", "deletefiles@test.com", "password123")
user := testutil.CreateTestUser(t, db, "deletefiles", "deletefiles@test.com", "Password123")
residence := testutil.CreateTestResidence(t, db, user.ID, "Test Home")
// Create document with file
@@ -319,8 +319,8 @@ func TestUserRepository_DeleteUserCascade(t *testing.T) {
db := testutil.SetupTestDB(t)
repo := NewUserRepository(db)
owner := testutil.CreateTestUser(t, db, "deleteowner", "deleteowner@test.com", "password123")
otherUser := testutil.CreateTestUser(t, db, "otheruser", "other@test.com", "password123")
owner := testutil.CreateTestUser(t, db, "deleteowner", "deleteowner@test.com", "Password123")
otherUser := testutil.CreateTestUser(t, db, "otheruser", "other@test.com", "Password123")
otherResidence := testutil.CreateTestResidence(t, db, otherUser.ID, "Other Home")
// Owner's residence