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) {