diff options
| author | Paul Buetow <paul@buetow.org> | 2026-02-25 21:57:30 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-02-25 21:57:30 +0200 |
| commit | 67e10f34c92e93343adbd690b3b21e455e863bd3 (patch) | |
| tree | 5de8f76cea00ea7c70703cb215cb5eb12fd17fa3 /internal/probemanager/manager_test.go | |
| parent | 92dbc37ed6d4b1758fae3fa7ae02dc58b8f81d4d (diff) | |
Fix probes bulk toggles and stabilize modal row rendering
Diffstat (limited to 'internal/probemanager/manager_test.go')
| -rw-r--r-- | internal/probemanager/manager_test.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/internal/probemanager/manager_test.go b/internal/probemanager/manager_test.go index f610ea3..1fcce6d 100644 --- a/internal/probemanager/manager_test.go +++ b/internal/probemanager/manager_test.go @@ -114,6 +114,37 @@ func TestManagerDetachDestroysLinks(t *testing.T) { } } +func TestManagerDetachFailureKeepsActiveStateForUndetachedLink(t *testing.T) { + enter := &fakeLink{err: errors.New("destroy failed")} + exit := &fakeLink{} + attacher := &fakeAttacher{ + programs: map[string]*fakeProgram{ + "handle_sys_enter_close": {link: enter}, + "handle_sys_exit_close": {link: exit}, + }, + errs: map[string]error{}, + } + mgr := NewManager(attacher) + if err := mgr.AttachAll(nil, []string{"sys_enter_close", "sys_exit_close"}); err != nil { + t.Fatalf("AttachAll returned error: %v", err) + } + + err := mgr.Detach("close") + if err == nil { + t.Fatalf("expected detach error") + } + states := mgr.States() + if len(states) != 1 { + t.Fatalf("expected one state, got %+v", states) + } + if !states[0].Active { + t.Fatalf("expected probe to remain active when one link failed to detach") + } + if states[0].Error == "" { + t.Fatalf("expected error to be recorded after detach failure") + } +} + func TestManagerClosePreventsFurtherOperations(t *testing.T) { attacher := &fakeAttacher{ programs: map[string]*fakeProgram{ |
