From 9802f12203867aa89b5c29f2c651cc1c67e2879f Mon Sep 17 00:00:00 2001 From: Lucio Lelii Date: Sun, 20 Sep 2026 16:08:54 +0200 Subject: [PATCH] Show the view-skill button on ungrouped array rows too The node draws array rows from two near-identical template blocks - one inside a group fieldset, one for ungrouped fields - and the button was added to only the first. An LLM node renders its Skills list through the second, so the button never appeared where it was actually wanted. The test that missed this only exercised the component class, so it adds a rendering test covering both blocks, and clears the stored user between service tests: left behind, it made a sign-in a no-op transition and the cache-reset tests failed intermittently. Co-Authored-By: Claude Opus 5 (1M context) --- src/app/services/flows/flows.spec.ts | 4 ++ src/app/services/projects/projects.spec.ts | 4 ++ .../nodes/generic-node/generic-node.html | 10 ++++ .../nodes/generic-node/generic-node.spec.ts | 49 +++++++++++++++++++ 4 files changed, 67 insertions(+) diff --git a/src/app/services/flows/flows.spec.ts b/src/app/services/flows/flows.spec.ts index fa69bd9..1eb3f27 100644 --- a/src/app/services/flows/flows.spec.ts +++ b/src/app/services/flows/flows.spec.ts @@ -53,6 +53,10 @@ describe('FlowsService', () => { createNewFlow: vi.fn() }; + // See the same line in projects.spec.ts: a user left in storage by an earlier test would make + // the sign-in below a no-op transition, and the cache would have no reason to reset. + localStorage.removeItem(Authorization.USER_STORAGE_KEY); + TestBed.configureTestingModule({}); service = TestBed.inject(FlowsService); service.flowsCallService = callServiceSpy as unknown as FlowsCallServiceBase; diff --git a/src/app/services/projects/projects.spec.ts b/src/app/services/projects/projects.spec.ts index 20f4ac7..9ef62d7 100644 --- a/src/app/services/projects/projects.spec.ts +++ b/src/app/services/projects/projects.spec.ts @@ -43,6 +43,10 @@ describe('ProjectsService', () => { deleteProject: vi.fn() }; + // Authorization restores the signed-in user from storage when it is constructed, and storage + // outlives a TestBed. Left over, it makes "bob signs in" a no-op transition in the test below. + localStorage.removeItem(Authorization.USER_STORAGE_KEY); + TestBed.configureTestingModule({}); service = TestBed.inject(ProjectsService); service.projectsCallService = callServiceSpy as unknown as ProjectsCallServiceBase; diff --git a/src/app/shared/nodes/generic-node/generic-node.html b/src/app/shared/nodes/generic-node/generic-node.html index 7cf540c..dda92fc 100644 --- a/src/app/shared/nodes/generic-node/generic-node.html +++ b/src/app/shared/nodes/generic-node/generic-node.html @@ -548,6 +548,16 @@
{{ entry.summary }}
+ @if (entry.skillId; as skillId) { + + } @if (!isReadonly) {