diff --git a/server/internal/app/config_test.go b/server/internal/app/config_test.go index 17bef80..3205a57 100644 --- a/server/internal/app/config_test.go +++ b/server/internal/app/config_test.go @@ -15,8 +15,8 @@ func TestDefaultConfig(t *testing.T) { tests := []struct { name string - got interface{} - expected interface{} + got any + expected any }{ {"DBPath", cfg.DBURL, "sqlite://lemma.db"}, {"WorkDir", cfg.WorkDir, "./data"}, @@ -119,8 +119,8 @@ func TestLoad(t *testing.T) { tests := []struct { name string - got interface{} - expected interface{} + got any + expected any }{ {"IsDevelopment", cfg.IsDevelopment, true}, {"DBURL", cfg.DBURL, "/custom/db/path.db"}, diff --git a/server/internal/auth/jwt.go b/server/internal/auth/jwt.go index eefedcb..76fe9b5 100644 --- a/server/internal/auth/jwt.go +++ b/server/internal/auth/jwt.go @@ -112,7 +112,7 @@ func (s *jwtService) generateToken(userID int, role string, sessionID string, to func (s *jwtService) ValidateToken(tokenString string) (*Claims, error) { log := getJWTLogger() - token, err := jwt.ParseWithClaims(tokenString, &Claims{}, func(token *jwt.Token) (interface{}, error) { + token, err := jwt.ParseWithClaims(tokenString, &Claims{}, func(token *jwt.Token) (any, error) { // Validate the signing method if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"]) diff --git a/server/internal/db/query.go b/server/internal/db/query.go index af8fd7c..e9526a4 100644 --- a/server/internal/db/query.go +++ b/server/internal/db/query.go @@ -16,7 +16,7 @@ const ( // Query represents a SQL query with its parameters type Query struct { builder strings.Builder - args []interface{} + args []any dbType DBType pos int // tracks the current placeholder position hasSelect bool @@ -35,7 +35,7 @@ type Query struct { func NewQuery(dbType DBType) *Query { return &Query{ dbType: dbType, - args: make([]interface{}, 0), + args: make([]any, 0), } } @@ -234,7 +234,7 @@ func (q *Query) Write(s string) *Query { } // Placeholder adds a placeholder for a single argument -func (q *Query) Placeholder(arg interface{}) *Query { +func (q *Query) Placeholder(arg any) *Query { q.pos++ q.args = append(q.args, arg) @@ -265,7 +265,7 @@ func (q *Query) Placeholders(n int) *Query { } // AddArgs adds arguments to the query -func (q *Query) AddArgs(args ...interface{}) *Query { +func (q *Query) AddArgs(args ...any) *Query { q.args = append(q.args, args...) return q } @@ -276,6 +276,6 @@ func (q *Query) String() string { } // Args returns the query arguments -func (q *Query) Args() []interface{} { +func (q *Query) Args() []any { return q.args } diff --git a/server/internal/db/query_test.go b/server/internal/db/query_test.go index 6664936..6c29924 100644 --- a/server/internal/db/query_test.go +++ b/server/internal/db/query_test.go @@ -56,7 +56,7 @@ func TestBasicQueryBuilding(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Simple select SQLite", @@ -65,7 +65,7 @@ func TestBasicQueryBuilding(t *testing.T) { return q.Select("id", "name").From("users") }, wantSQL: "SELECT id, name FROM users", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Simple select Postgres", @@ -74,7 +74,7 @@ func TestBasicQueryBuilding(t *testing.T) { return q.Select("id", "name").From("users") }, wantSQL: "SELECT id, name FROM users", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Select with where SQLite", @@ -83,7 +83,7 @@ func TestBasicQueryBuilding(t *testing.T) { return q.Select("id", "name").From("users").Where("id = ").Placeholder(1) }, wantSQL: "SELECT id, name FROM users WHERE id = ?", - wantArgs: []interface{}{1}, + wantArgs: []any{1}, }, { name: "Select with where Postgres", @@ -92,7 +92,7 @@ func TestBasicQueryBuilding(t *testing.T) { return q.Select("id", "name").From("users").Where("id = ").Placeholder(1) }, wantSQL: "SELECT id, name FROM users WHERE id = $1", - wantArgs: []interface{}{1}, + wantArgs: []any{1}, }, { name: "Multiple where conditions SQLite", @@ -103,7 +103,7 @@ func TestBasicQueryBuilding(t *testing.T) { And("role = ").Placeholder("admin") }, wantSQL: "SELECT * FROM users WHERE active = ? AND role = ?", - wantArgs: []interface{}{true, "admin"}, + wantArgs: []any{true, "admin"}, }, { name: "Multiple where conditions Postgres", @@ -114,7 +114,7 @@ func TestBasicQueryBuilding(t *testing.T) { And("role = ").Placeholder("admin") }, wantSQL: "SELECT * FROM users WHERE active = $1 AND role = $2", - wantArgs: []interface{}{true, "admin"}, + wantArgs: []any{true, "admin"}, }, } @@ -143,7 +143,7 @@ func TestPlaceholders(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Single placeholder SQLite", @@ -152,7 +152,7 @@ func TestPlaceholders(t *testing.T) { return q.Write("SELECT * FROM users WHERE id = ").Placeholder(42) }, wantSQL: "SELECT * FROM users WHERE id = ?", - wantArgs: []interface{}{42}, + wantArgs: []any{42}, }, { name: "Single placeholder Postgres", @@ -161,7 +161,7 @@ func TestPlaceholders(t *testing.T) { return q.Write("SELECT * FROM users WHERE id = ").Placeholder(42) }, wantSQL: "SELECT * FROM users WHERE id = $1", - wantArgs: []interface{}{42}, + wantArgs: []any{42}, }, { name: "Multiple placeholders SQLite", @@ -173,7 +173,7 @@ func TestPlaceholders(t *testing.T) { Placeholder("John") }, wantSQL: "SELECT * FROM users WHERE id = ? AND name = ?", - wantArgs: []interface{}{42, "John"}, + wantArgs: []any{42, "John"}, }, { name: "Multiple placeholders Postgres", @@ -185,7 +185,7 @@ func TestPlaceholders(t *testing.T) { Placeholder("John") }, wantSQL: "SELECT * FROM users WHERE id = $1 AND name = $2", - wantArgs: []interface{}{42, "John"}, + wantArgs: []any{42, "John"}, }, { name: "Placeholders for IN SQLite", @@ -197,7 +197,7 @@ func TestPlaceholders(t *testing.T) { AddArgs(1, 2, 3) }, wantSQL: "SELECT * FROM users WHERE id IN (?, ?, ?)", - wantArgs: []interface{}{1, 2, 3}, + wantArgs: []any{1, 2, 3}, }, { name: "Placeholders for IN Postgres", @@ -209,7 +209,7 @@ func TestPlaceholders(t *testing.T) { AddArgs(1, 2, 3) }, wantSQL: "SELECT * FROM users WHERE id IN ($1, $2, $3)", - wantArgs: []interface{}{1, 2, 3}, + wantArgs: []any{1, 2, 3}, }, } @@ -238,7 +238,7 @@ func TestWhereClauseBuilding(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Simple where", @@ -247,7 +247,7 @@ func TestWhereClauseBuilding(t *testing.T) { return q.Select("*").From("users").Where("id = ").Placeholder(1) }, wantSQL: "SELECT * FROM users WHERE id = ?", - wantArgs: []interface{}{1}, + wantArgs: []any{1}, }, { name: "Where with And", @@ -258,7 +258,7 @@ func TestWhereClauseBuilding(t *testing.T) { And("active = ").Placeholder(true) }, wantSQL: "SELECT * FROM users WHERE id = ? AND active = ?", - wantArgs: []interface{}{1, true}, + wantArgs: []any{1, true}, }, { name: "Where with Or", @@ -269,7 +269,7 @@ func TestWhereClauseBuilding(t *testing.T) { Or("id = ").Placeholder(2) }, wantSQL: "SELECT * FROM users WHERE id = ? OR id = ?", - wantArgs: []interface{}{1, 2}, + wantArgs: []any{1, 2}, }, { name: "Where with parentheses", @@ -283,7 +283,7 @@ func TestWhereClauseBuilding(t *testing.T) { Write(")") }, wantSQL: "SELECT * FROM users WHERE active = ? AND (id = ? OR id = ?)", - wantArgs: []interface{}{true, 1, 2}, + wantArgs: []any{true, 1, 2}, }, { name: "Where with StartGroup and EndGroup", @@ -297,7 +297,7 @@ func TestWhereClauseBuilding(t *testing.T) { Write(")") }, wantSQL: "SELECT * FROM users WHERE active = ? AND (id = ? OR id = ?)", - wantArgs: []interface{}{true, 1, 2}, + wantArgs: []any{true, 1, 2}, }, { name: "Where with nested groups", @@ -311,7 +311,7 @@ func TestWhereClauseBuilding(t *testing.T) { And("created_at > ").Placeholder("2020-01-01") }, wantSQL: "SELECT * FROM users WHERE (active = ? OR role = ?) AND created_at > ?", - wantArgs: []interface{}{true, "admin", "2020-01-01"}, + wantArgs: []any{true, "admin", "2020-01-01"}, }, { name: "WhereIn", @@ -322,7 +322,7 @@ func TestWhereClauseBuilding(t *testing.T) { AddArgs(1, 2, 3) }, wantSQL: "SELECT * FROM users WHERE id IN (?, ?, ?)", - wantArgs: []interface{}{1, 2, 3}, + wantArgs: []any{1, 2, 3}, }, } @@ -351,7 +351,7 @@ func TestJoinClauseBuilding(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Inner join", @@ -362,7 +362,7 @@ func TestJoinClauseBuilding(t *testing.T) { Join(db.InnerJoin, "workspaces w", "w.user_id = u.id") }, wantSQL: "SELECT u.*, w.name FROM users u INNER JOIN workspaces w ON w.user_id = u.id", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Left join", @@ -373,7 +373,7 @@ func TestJoinClauseBuilding(t *testing.T) { Join(db.LeftJoin, "workspaces w", "w.user_id = u.id") }, wantSQL: "SELECT u.*, w.name FROM users u LEFT JOIN workspaces w ON w.user_id = u.id", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Multiple joins", @@ -385,7 +385,7 @@ func TestJoinClauseBuilding(t *testing.T) { Join(db.LeftJoin, "settings s", "s.user_id = u.id") }, wantSQL: "SELECT u.*, w.name, s.role FROM users u INNER JOIN workspaces w ON w.user_id = u.id LEFT JOIN settings s ON s.user_id = u.id", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Join with where", @@ -397,7 +397,7 @@ func TestJoinClauseBuilding(t *testing.T) { Where("u.active = ").Placeholder(true) }, wantSQL: "SELECT u.*, w.name FROM users u INNER JOIN workspaces w ON w.user_id = u.id WHERE u.active = ?", - wantArgs: []interface{}{true}, + wantArgs: []any{true}, }, } @@ -426,7 +426,7 @@ func TestOrderLimitOffset(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Order by", @@ -435,7 +435,7 @@ func TestOrderLimitOffset(t *testing.T) { return q.Select("*").From("users").OrderBy("name ASC") }, wantSQL: "SELECT * FROM users ORDER BY name ASC", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Order by multiple columns", @@ -444,7 +444,7 @@ func TestOrderLimitOffset(t *testing.T) { return q.Select("*").From("users").OrderBy("name ASC", "created_at DESC") }, wantSQL: "SELECT * FROM users ORDER BY name ASC, created_at DESC", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Limit", @@ -453,7 +453,7 @@ func TestOrderLimitOffset(t *testing.T) { return q.Select("*").From("users").Limit(10) }, wantSQL: "SELECT * FROM users LIMIT 10", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Limit and offset", @@ -462,7 +462,7 @@ func TestOrderLimitOffset(t *testing.T) { return q.Select("*").From("users").Limit(10).Offset(20) }, wantSQL: "SELECT * FROM users LIMIT 10 OFFSET 20", - wantArgs: []interface{}{}, + wantArgs: []any{}, }, { name: "Complete query with all clauses", @@ -476,7 +476,7 @@ func TestOrderLimitOffset(t *testing.T) { Offset(20) }, wantSQL: "SELECT * FROM users WHERE active = ? ORDER BY name ASC LIMIT 10 OFFSET 20", - wantArgs: []interface{}{true}, + wantArgs: []any{true}, }, } @@ -505,7 +505,7 @@ func TestInsertUpdateDelete(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Insert SQLite", @@ -516,7 +516,7 @@ func TestInsertUpdateDelete(t *testing.T) { AddArgs("John", "john@example.com") }, wantSQL: "INSERT INTO users (name, email) VALUES (?, ?)", - wantArgs: []interface{}{"John", "john@example.com"}, + wantArgs: []any{"John", "john@example.com"}, }, { name: "Insert Postgres", @@ -527,7 +527,7 @@ func TestInsertUpdateDelete(t *testing.T) { AddArgs("John", "john@example.com") }, wantSQL: "INSERT INTO users (name, email) VALUES ($1, $2)", - wantArgs: []interface{}{"John", "john@example.com"}, + wantArgs: []any{"John", "john@example.com"}, }, { name: "Update SQLite", @@ -539,7 +539,7 @@ func TestInsertUpdateDelete(t *testing.T) { Where("id = ").Placeholder(1) }, wantSQL: "UPDATE users SET name = ?, email = ? WHERE id = ?", - wantArgs: []interface{}{"John", "john@example.com", 1}, + wantArgs: []any{"John", "john@example.com", 1}, }, { name: "Update Postgres", @@ -551,7 +551,7 @@ func TestInsertUpdateDelete(t *testing.T) { Where("id = ").Placeholder(1) }, wantSQL: "UPDATE users SET name = $1, email = $2 WHERE id = $3", - wantArgs: []interface{}{"John", "john@example.com", 1}, + wantArgs: []any{"John", "john@example.com", 1}, }, { name: "Delete SQLite", @@ -560,7 +560,7 @@ func TestInsertUpdateDelete(t *testing.T) { return q.Delete().From("users").Where("id = ").Placeholder(1) }, wantSQL: "DELETE FROM users WHERE id = ?", - wantArgs: []interface{}{1}, + wantArgs: []any{1}, }, { name: "Delete Postgres", @@ -569,7 +569,7 @@ func TestInsertUpdateDelete(t *testing.T) { return q.Delete().From("users").Where("id = ").Placeholder(1) }, wantSQL: "DELETE FROM users WHERE id = $1", - wantArgs: []interface{}{1}, + wantArgs: []any{1}, }, } @@ -598,7 +598,7 @@ func TestHavingClause(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Simple having", @@ -610,7 +610,7 @@ func TestHavingClause(t *testing.T) { Having("count > ").Placeholder(5) }, wantSQL: "SELECT department, COUNT(*) as count FROM employees GROUP BY department HAVING count > ?", - wantArgs: []interface{}{5}, + wantArgs: []any{5}, }, { name: "Having with multiple conditions", @@ -623,7 +623,7 @@ func TestHavingClause(t *testing.T) { And("COUNT(*) > ").Placeholder(3) }, wantSQL: "SELECT department, AVG(salary) as avg_salary FROM employees GROUP BY department HAVING avg_salary > ? AND COUNT(*) > ?", - wantArgs: []interface{}{50000, 3}, + wantArgs: []any{50000, 3}, }, { name: "Having with postgres placeholders", @@ -635,7 +635,7 @@ func TestHavingClause(t *testing.T) { Having("count > ").Placeholder(5) }, wantSQL: "SELECT department, COUNT(*) as count FROM employees GROUP BY department HAVING count > $1", - wantArgs: []interface{}{5}, + wantArgs: []any{5}, }, } @@ -664,7 +664,7 @@ func TestComplexQueries(t *testing.T) { dbType db.DBType buildFn func(*db.Query) *db.Query wantSQL string - wantArgs []interface{} + wantArgs []any }{ { name: "Complex select with join and where", @@ -680,7 +680,7 @@ func TestComplexQueries(t *testing.T) { Limit(10) }, wantSQL: "SELECT u.id, u.name, COUNT(w.id) as workspace_count FROM users u LEFT JOIN workspaces w ON w.user_id = u.id WHERE u.active = ? GROUP BY u.id, u.name HAVING COUNT(w.id) > ? ORDER BY workspace_count DESC LIMIT 10", - wantArgs: []interface{}{true, 0}, + wantArgs: []any{true, 0}, }, } diff --git a/server/internal/db/scanner.go b/server/internal/db/scanner.go index 97e0422..f50c296 100644 --- a/server/internal/db/scanner.go +++ b/server/internal/db/scanner.go @@ -23,7 +23,7 @@ func NewScanner(db *sql.DB, dbType DBType) *Scanner { } // QueryRow executes a query and scans the result into a struct -func (s *Scanner) QueryRow(dest interface{}, q *Query) error { +func (s *Scanner) QueryRow(dest any, q *Query) error { row := s.db.QueryRow(q.String(), q.Args()...) // Handle primitive types @@ -46,7 +46,7 @@ func (s *Scanner) QueryRow(dest interface{}, q *Query) error { } // Query executes a query and scans multiple results into a slice of structs -func (s *Scanner) Query(dest interface{}, q *Query) error { +func (s *Scanner) Query(dest any, q *Query) error { rows, err := s.db.Query(q.String(), q.Args()...) if err != nil { return err @@ -57,7 +57,7 @@ func (s *Scanner) Query(dest interface{}, q *Query) error { } // scanStruct scans a single row into a struct -func scanStruct(row *sql.Row, dest interface{}) error { +func scanStruct(row *sql.Row, dest any) error { v := reflect.ValueOf(dest) if v.Kind() != reflect.Ptr { return fmt.Errorf("dest must be a pointer") @@ -67,7 +67,7 @@ func scanStruct(row *sql.Row, dest interface{}) error { return fmt.Errorf("dest must be a pointer to a struct") } - fields := make([]interface{}, 0, v.NumField()) + fields := make([]any, 0, v.NumField()) for i := 0; i < v.NumField(); i++ { field := v.Field(i) @@ -80,7 +80,7 @@ func scanStruct(row *sql.Row, dest interface{}) error { } // scanStructs scans multiple rows into a slice of structs -func scanStructs(rows *sql.Rows, dest interface{}) error { +func scanStructs(rows *sql.Rows, dest any) error { v := reflect.ValueOf(dest) if v.Kind() != reflect.Ptr { return fmt.Errorf("dest must be a pointer") @@ -95,7 +95,7 @@ func scanStructs(rows *sql.Rows, dest interface{}) error { for rows.Next() { newElem := reflect.New(elemType).Elem() - fields := make([]interface{}, 0, newElem.NumField()) + fields := make([]any, 0, newElem.NumField()) for i := 0; i < newElem.NumField(); i++ { field := newElem.Field(i) @@ -129,7 +129,7 @@ func NewScannerEx(db *sql.DB, dbType DBType) *ScannerEx { } // QueryRow executes a query and scans the result into a struct -func (s *ScannerEx) QueryRow(dest interface{}, q *Query) error { +func (s *ScannerEx) QueryRow(dest any, q *Query) error { row := s.db.QueryRow(q.String(), q.Args()...) // Get column names @@ -141,7 +141,7 @@ func (s *ScannerEx) QueryRow(dest interface{}, q *Query) error { } // Query executes a query and scans multiple results into a slice of structs -func (s *ScannerEx) Query(dest interface{}, q *Query) error { +func (s *ScannerEx) Query(dest any, q *Query) error { rows, err := s.db.Query(q.String(), q.Args()...) if err != nil { return err @@ -189,7 +189,7 @@ func toSnakeCase(s string) string { } // scanStructTags scans a single row into a struct using field tags -func scanStructTags(row *sql.Row, dest interface{}) error { +func scanStructTags(row *sql.Row, dest any) error { v := reflect.ValueOf(dest) if v.Kind() != reflect.Ptr { return fmt.Errorf("dest must be a pointer") @@ -199,7 +199,7 @@ func scanStructTags(row *sql.Row, dest interface{}) error { return fmt.Errorf("dest must be a pointer to a struct") } - fields := make([]interface{}, 0, v.NumField()) + fields := make([]any, 0, v.NumField()) for i := 0; i < v.NumField(); i++ { field := v.Field(i) @@ -212,7 +212,7 @@ func scanStructTags(row *sql.Row, dest interface{}) error { } // scanStructsTags scans multiple rows into a slice of structs using field tags -func scanStructsTags(rows *sql.Rows, dest interface{}) error { +func scanStructsTags(rows *sql.Rows, dest any) error { v := reflect.ValueOf(dest) if v.Kind() != reflect.Ptr { return fmt.Errorf("dest must be a pointer") @@ -243,8 +243,8 @@ func scanStructsTags(rows *sql.Rows, dest interface{}) error { fieldMap := getFieldMap(elemType) // Prepare values slice for each scan - values := make([]interface{}, len(columns)) - scanFields := make([]interface{}, len(columns)) + values := make([]any, len(columns)) + scanFields := make([]any, len(columns)) for i := range values { scanFields[i] = &values[i] } diff --git a/server/internal/handlers/admin_handlers.go b/server/internal/handlers/admin_handlers.go index 082edaf..47c9d04 100644 --- a/server/internal/handlers/admin_handlers.go +++ b/server/internal/handlers/admin_handlers.go @@ -308,7 +308,7 @@ func (h *Handler) AdminUpdateUser() http.HandlerFunc { } // Track what's being updated for logging - updates := make(map[string]interface{}) + updates := make(map[string]any) if req.Email != "" { user.Email = req.Email diff --git a/server/internal/handlers/file_handlers_integration_test.go b/server/internal/handlers/file_handlers_integration_test.go index 384d2c3..c9a35a4 100644 --- a/server/internal/handlers/file_handlers_integration_test.go +++ b/server/internal/handlers/file_handlers_integration_test.go @@ -192,7 +192,7 @@ func TestFileHandlers_Integration(t *testing.T) { name string method string path string - body interface{} + body any }{ {"list files", http.MethodGet, baseURL, nil}, {"get file", http.MethodGet, baseURL + "/test.md", nil}, diff --git a/server/internal/handlers/git_handlers_integration_test.go b/server/internal/handlers/git_handlers_integration_test.go index 87f21ec..f458b86 100644 --- a/server/internal/handlers/git_handlers_integration_test.go +++ b/server/internal/handlers/git_handlers_integration_test.go @@ -123,7 +123,7 @@ func TestGitHandlers_Integration(t *testing.T) { name string method string path string - body interface{} + body any }{ { name: "commit without token", diff --git a/server/internal/handlers/handlers.go b/server/internal/handlers/handlers.go index 357f007..5e37571 100644 --- a/server/internal/handlers/handlers.go +++ b/server/internal/handlers/handlers.go @@ -37,7 +37,7 @@ func NewHandler(db db.Database, s storage.Manager) *Handler { } // respondJSON is a helper to send JSON responses -func respondJSON(w http.ResponseWriter, data interface{}) { +func respondJSON(w http.ResponseWriter, data any) { w.Header().Set("Content-Type", "application/json") if err := json.NewEncoder(w).Encode(data); err != nil { respondError(w, "Failed to encode response", http.StatusInternalServerError) diff --git a/server/internal/handlers/integration_test.go b/server/internal/handlers/integration_test.go index fb66585..0bb8bd3 100644 --- a/server/internal/handlers/integration_test.go +++ b/server/internal/handlers/integration_test.go @@ -195,7 +195,7 @@ func (h *testHarness) createTestUser(t *testing.T, email, password string, role } } -func (h *testHarness) newRequest(t *testing.T, method, path string, body interface{}) *http.Request { +func (h *testHarness) newRequest(t *testing.T, method, path string, body any) *http.Request { t.Helper() var reqBody []byte @@ -246,7 +246,7 @@ func (h *testHarness) addCSRFCookie(t *testing.T, req *http.Request) string { } // makeRequest is the main helper for making JSON requests -func (h *testHarness) makeRequest(t *testing.T, method, path string, body interface{}, testUser *testUser) *httptest.ResponseRecorder { +func (h *testHarness) makeRequest(t *testing.T, method, path string, body any, testUser *testUser) *httptest.ResponseRecorder { t.Helper() req := h.newRequest(t, method, path, body) diff --git a/server/internal/storage/filesystem_test.go b/server/internal/storage/filesystem_test.go index a35c692..e717a16 100644 --- a/server/internal/storage/filesystem_test.go +++ b/server/internal/storage/filesystem_test.go @@ -37,7 +37,7 @@ func (m MockDirInfo) Size() int64 { return m.size } func (m MockDirInfo) Mode() fs.FileMode { return m.mode } func (m MockDirInfo) ModTime() time.Time { return m.modTime } func (m MockDirInfo) IsDir() bool { return m.isDir } -func (m MockDirInfo) Sys() interface{} { return nil } +func (m MockDirInfo) Sys() any { return nil } type mockFS struct { // Record operations for verification