diff --git a/internal/server/repository_controller.go b/internal/server/repository_controller.go index 9912adf21..8300f3b20 100644 --- a/internal/server/repository_controller.go +++ b/internal/server/repository_controller.go @@ -95,12 +95,18 @@ func (r *Repository) UpdateControllerStatus(ctx context.Context, controller *Con db.ExpBackoff{}, func(reader db.Reader, w db.Writer) error { var err error - rowsUpdated, err = w.Exec(ctx, updateController, - []any{ - sql.Named("controller_address", controller.Address), - sql.Named("controller_description", controller.Description), - sql.Named("controller_private_id", controller.PrivateId), - }) + params := []any{ + sql.Named("controller_private_id", controller.PrivateId), + sql.Named("controller_address", controller.Address), + } + + if controller.Description != "" { + params = append(params, sql.Named("controller_description", controller.Description)) + } else { + params = append(params, sql.Named("controller_description", nil)) + } + + rowsUpdated, err = w.Exec(ctx, updateController, params) switch { case err != nil: return errors.Wrap(ctx, err, op+":Update") diff --git a/internal/server/repository_controller_test.go b/internal/server/repository_controller_test.go index d239d538b..238c46f95 100644 --- a/internal/server/repository_controller_test.go +++ b/internal/server/repository_controller_test.go @@ -184,6 +184,28 @@ func TestRepository_UpdateControllerStatus(t *testing.T) { require.Equal(t, 1, c) }, }, + "valid-ipv4-controller-remove-description": { + originalController: NewController("test", WithAddress("127.0.0.1"), WithDescription("short name description")), + updatedController: NewController("test", WithAddress("127.0.0.2")), + wantCount: 1, + cleanUpFunc: func(t *testing.T, rw *db.Db, privateId string) { + t.Helper() + c, err := rw.Exec(ctx, removeControllerSql, []any{privateId}) + require.NoError(t, err) + require.Equal(t, 1, c) + }, + }, + "valid-ipv4-controller-no-description": { + originalController: NewController("test", WithAddress("127.0.0.1")), + updatedController: NewController("test", WithAddress("127.0.0.2")), + wantCount: 1, + cleanUpFunc: func(t *testing.T, rw *db.Db, privateId string) { + t.Helper() + c, err := rw.Exec(ctx, removeControllerSql, []any{privateId}) + require.NoError(t, err) + require.Equal(t, 1, c) + }, + }, } for name, tt := range tests {