package test import ( "RenewCMS/internal/domain/user" "RenewCMS/internal/infrastructure/persistence/models" persistence "RenewCMS/internal/infrastructure/persistence/repositories" "errors" "testing" ) func TestUserRepositoryDelete(t *testing.T) { t.Run("Deleting a user removes only that row", func(t *testing.T) { db := openRealSqlite(t) for _, name := range []string{"one", "two", "three"} { seedRealUser(t, db, models.User{Username: name, Password: "x", Email: name + "@renew.example"}) } repo := persistence.NewUserRepository(db) if err := repo.Delete(2); err != nil { t.Fatalf("delete: %v", err) } if _, err := repo.Get(2); !errors.Is(err, user.ErrUserNotFound) { t.Errorf("user 2 must be gone, got %v", err) } for _, id := range []uint32{1, 3} { if _, err := repo.Get(id); err != nil { t.Errorf("user %d must remain, got %v", id, err) } } }) t.Run("Deleting a missing user reports not found", func(t *testing.T) { repo := persistence.NewUserRepository(openRealSqlite(t)) if err := repo.Delete(99); !errors.Is(err, user.ErrUserNotFound) { t.Errorf("expected ErrUserNotFound, got %v", err) } }) }