From 8aa1b23a2296a3cf18ccd6cc220a3a1ea1768355 Mon Sep 17 00:00:00 2001 From: Ashley Mensah Date: Wed, 5 Nov 2025 17:11:23 +0100 Subject: [PATCH] actually commit my changes this time... --- client/internal/updatemanager/manager.go | 4 +++- client/internal/updatemanager/update_darwin.go | 5 +++++ client/internal/updatemanager/update_freebsd.go | 5 +++++ client/internal/updatemanager/update_js.go | 5 +++++ client/internal/updatemanager/update_linux.go | 5 +++++ client/internal/updatemanager/update_windows.go | 5 +++++ 6 files changed, 28 insertions(+), 1 deletion(-) diff --git a/client/internal/updatemanager/manager.go b/client/internal/updatemanager/manager.go index 8988b4d42..d1c989274 100644 --- a/client/internal/updatemanager/manager.go +++ b/client/internal/updatemanager/manager.go @@ -61,6 +61,9 @@ type UpdateManager struct { // updateMutex protect update and expectedVersion fields updateMutex sync.Mutex + + // updateFunc is used for testing to mock the triggerUpdate behavior + updateFunc func(ctx context.Context, targetVersion string) error } func NewUpdateManager(statusRecorder *peer.Status, stateManager *statemanager.Manager) *UpdateManager { @@ -79,7 +82,6 @@ func NewUpdateManager(statusRecorder *peer.Status, stateManager *statemanager.Ma // CheckUpdateSuccess checks if the update was successful. It works without to start the update manager. func (u *UpdateManager) CheckUpdateSuccess(ctx context.Context) { u.updateStateManager(ctx) - return } func (u *UpdateManager) Start(ctx context.Context) { diff --git a/client/internal/updatemanager/update_darwin.go b/client/internal/updatemanager/update_darwin.go index af271e136..1fddb267c 100644 --- a/client/internal/updatemanager/update_darwin.go +++ b/client/internal/updatemanager/update_darwin.go @@ -18,6 +18,11 @@ const ( ) func (u *UpdateManager) triggerUpdate(ctx context.Context, targetVersion string) error { + // Use test function if set (for testing only) + if u.updateFunc != nil { + return u.updateFunc(ctx, targetVersion) + } + cmd := exec.CommandContext(ctx, "pkgutil", "--pkg-info", "io.netbird.client") outBytes, err := cmd.Output() if err != nil && cmd.ProcessState.ExitCode() == 1 { diff --git a/client/internal/updatemanager/update_freebsd.go b/client/internal/updatemanager/update_freebsd.go index f987897f1..41a29c2f1 100644 --- a/client/internal/updatemanager/update_freebsd.go +++ b/client/internal/updatemanager/update_freebsd.go @@ -5,6 +5,11 @@ package updatemanager import "context" func (u *UpdateManager) triggerUpdate(ctx context.Context, targetVersion string) error { + // Use test function if set (for testing purposes) + if u.updateFunc != nil { + return u.updateFunc(ctx, targetVersion) + } + // TODO: Implement return nil } diff --git a/client/internal/updatemanager/update_js.go b/client/internal/updatemanager/update_js.go index cec6c9a1c..43ddf30ff 100644 --- a/client/internal/updatemanager/update_js.go +++ b/client/internal/updatemanager/update_js.go @@ -5,6 +5,11 @@ package updatemanager import "context" func (u *UpdateManager) triggerUpdate(ctx context.Context, targetVersion string) error { + // Use test function if set (for testing purposes) + if u.updateFunc != nil { + return u.updateFunc(ctx, targetVersion) + } + // TODO: Implement return nil } diff --git a/client/internal/updatemanager/update_linux.go b/client/internal/updatemanager/update_linux.go index 64caa0f77..ad96e8701 100644 --- a/client/internal/updatemanager/update_linux.go +++ b/client/internal/updatemanager/update_linux.go @@ -5,6 +5,11 @@ package updatemanager import "context" func (u *UpdateManager) triggerUpdate(ctx context.Context, targetVersion string) error { + // Use test function if set (for testing purposes) + if u.updateFunc != nil { + return u.updateFunc(ctx, targetVersion) + } + // TODO: Implement return nil } diff --git a/client/internal/updatemanager/update_windows.go b/client/internal/updatemanager/update_windows.go index 163cad557..3eacb5ae1 100644 --- a/client/internal/updatemanager/update_windows.go +++ b/client/internal/updatemanager/update_windows.go @@ -26,6 +26,11 @@ const ( type installerType string func (u *UpdateManager) triggerUpdate(ctx context.Context, targetVersion string) error { + // Use test function if set (for testing purposes) + if u.updateFunc != nil { + return u.updateFunc(ctx, targetVersion) + } + method := installation() return install(ctx, method, targetVersion) }