Просмотр исходного кода

fix(workflow): let completion win batched activity

pku-xht 3 недель назад
Родитель
Сommit
c7bd2fdafe

+ 1 - 1
packages/client/ui-workflow-run/src/client/WorkflowRunPanel.tsx

@@ -358,7 +358,7 @@ export function WorkflowRunPanel({ node, sessionId, useSessions, openSession, t
         runFacts,
         focusIsWithin(runContentRef.current),
       )
-      const run = phaseStartedCycle && !advancedRun.open
+      const run = phaseStartedCycle && runFacts.mode !== 'clean' && !advancedRun.open
         ? { ...advancedRun, open: true, pendingCleanCollapse: false }
         : advancedRun
       return run !== current.run || phasesChanged ? { run, phases } : current

+ 12 - 0
packages/client/ui-workflow-run/tests/workflow-run.client.spec.tsx

@@ -448,6 +448,18 @@ describe('WorkflowRunPanel', () => {
     expect(screen.getByRole('button', { name: /未分阶段/ }).getAttribute('aria-expanded')).toBe('false')
     expect(screen.queryByText('first')).toBeNull()
     expect(screen.queryByText('second')).toBeNull()
+
+    phaseView.rerender(<WorkflowRunPanel {...panelProps({
+      ...phaseClean,
+      status: 'completed',
+      phases: [phase({ members: [firstMember, {
+        seq: 2, label: 'second', childId: SECOND_ID, status: 'completed',
+      }, {
+        seq: 3, label: 'final', childId: 'child-3' as SessionId, status: 'completed',
+      }] })],
+    })} />)
+    expect(runHeader.getAttribute('aria-expanded')).toBe('false')
+    expect(screen.queryByRole('button', { name: /未分阶段/ })).toBeNull()
   })
 
   it('initializes a newly observed phase before it becomes interactive', () => {