diff --git a/internal/app/screen_inspector.go b/internal/app/screen_inspector.go index 9fa8c16..7d84bd9 100644 --- a/internal/app/screen_inspector.go +++ b/internal/app/screen_inspector.go @@ -79,9 +79,7 @@ func (im *inspectorModel) refreshWorkflows() { func (im *inspectorModel) ensureWorkflows() { if len(im.workflows) == 0 { im.refreshWorkflows() - return } - im.refreshWorkflows() } func (im *inspectorModel) Enter(m *Model) { diff --git a/internal/app/screen_inspector_test.go b/internal/app/screen_inspector_test.go index a0d83de..2f1b9ce 100644 --- a/internal/app/screen_inspector_test.go +++ b/internal/app/screen_inspector_test.go @@ -3,8 +3,42 @@ package app import ( "testing" "unicode/utf8" + + "unic/internal/inspector" ) +func TestInspectorEnsureWorkflowsKeepsExistingWorkflows(t *testing.T) { + im := inspectorModel{ + workflows: []inspector.Workflow{ + { + Kind: inspector.WorkflowSecurity, + Title: "Existing Workflow", + Description: "already loaded", + Available: true, + }, + }, + } + + im.ensureWorkflows() + + if len(im.workflows) != 1 { + t.Fatalf("expected existing workflow list to be preserved, got %d workflows", len(im.workflows)) + } + if im.workflows[0].Title != "Existing Workflow" { + t.Fatalf("expected existing workflow to be preserved, got %#v", im.workflows[0]) + } +} + +func TestInspectorEnsureWorkflowsRefreshesEmptyWorkflows(t *testing.T) { + im := inspectorModel{} + + im.ensureWorkflows() + + if len(im.workflows) != 2 { + t.Fatalf("expected empty workflow list to be populated with 2 workflows, got %d", len(im.workflows)) + } +} + func TestInspectorShortenHandlesUnicodeSafely(t *testing.T) { tests := []struct { name string