Skip to content

Commit a5220a4

Browse files
authored
fix(ui): fix websocket workflow run filter (#5161)
1 parent 15a5574 commit a5220a4

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

engine/api/websocket.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,13 +372,16 @@ func (c *websocketClient) send(ctx context.Context, event sdk.Event) (err error)
372372
case strings.HasPrefix(event.EventType, "sdk.EventRunWorkflow") && c.filter.Type == sdk.WebsocketFilterTypeWorkflow:
373373
if event.ProjectKey != c.filter.ProjectKey || event.WorkflowName != c.filter.WorkflowName {
374374
sendEvent = false
375+
break
375376
}
376377
if c.filter.WorkflowRunNumber != 0 && event.WorkflowRunNum != c.filter.WorkflowRunNumber {
377378
sendEvent = false
379+
break
378380
}
379381
// WORKFLOW NODE RUN EVENT
380382
if c.filter.WorkflowNodeRunID != 0 && event.WorkflowNodeRunID != c.filter.WorkflowNodeRunID {
381383
sendEvent = false
384+
break
382385
}
383386
sendEvent = true
384387
default:

engine/api/websocket_test.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -166,19 +166,23 @@ func Test_websocketGetWorkflowEvent(t *testing.T) {
166166
go client.WebsocketEventsListen(context.TODO(), chanMessageToSend, chanMessageReceived)
167167

168168
chanMessageToSend <- sdk.WebsocketFilter{
169-
Type: sdk.WebsocketFilterTypeWorkflow,
170-
ProjectKey: key,
171-
WorkflowName: w.Name,
169+
Type: sdk.WebsocketFilterTypeWorkflow,
170+
ProjectKey: key,
171+
WorkflowName: w.Name,
172+
WorkflowRunNumber: 1,
172173
}
173174
// Waiting websocket to update filter
174175
time.Sleep(1 * time.Second)
175176

176-
api.websocketBroker.messages <- sdk.Event{ProjectKey: proj.Key, WorkflowName: w.Name, EventType: "sdk.EventWorkflow"}
177+
api.websocketBroker.messages <- sdk.Event{ProjectKey: "blabla", WorkflowName: "toto", EventType: "sdk.EventRunWorkflow", WorkflowRunNum: 1}
178+
api.websocketBroker.messages <- sdk.Event{ProjectKey: proj.Key, WorkflowName: w.Name, EventType: "sdk.EventRunWorkflow", WorkflowRunNum: 1}
177179
response := <-chanMessageReceived
178180
require.Equal(t, "OK", response.Status)
179-
require.Equal(t, response.Event.EventType, "sdk.EventWorkflow")
181+
require.Equal(t, response.Event.EventType, "sdk.EventRunWorkflow")
180182
require.Equal(t, response.Event.ProjectKey, proj.Key)
181183
require.Equal(t, response.Event.WorkflowName, w.Name)
184+
185+
assert.Equal(t, 0, len(chanMessageReceived))
182186
}
183187

184188
func Test_websocketDeconnection(t *testing.T) {

0 commit comments

Comments
 (0)