Skip to content

Commit 5b72981

Browse files
authored
Fixes to MSC4140 tests (#737)
1 parent b0bc680 commit 5b72981

File tree

1 file changed

+50
-14
lines changed

1 file changed

+50
-14
lines changed

tests/msc4140/delayed_event_test.go

Lines changed: 50 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ func TestDelayedEvents(t *testing.T) {
5454

5555
_, token := user.MustSync(t, client.SyncReq{})
5656

57+
defer cleanupDelayedEvents(t, user)
58+
5759
txnIdBase := "txn-delayed-msg-timeout-%d"
5860

5961
countKey := "count"
@@ -85,24 +87,11 @@ func TestDelayedEvents(t *testing.T) {
8587
})
8688
}
8789

88-
checkContent := func(val gjson.Result) error {
89-
content := val.Get("content").Map()
90-
if l := len(content); l != 1 {
91-
return fmt.Errorf("wrong number of content fields: expected 1, got %d", l)
92-
}
93-
countExpected++
94-
if countActual := content[countKey].Uint(); countActual != countExpected {
95-
return fmt.Errorf("wrong count in delayed event content: expected %v, got %v", countExpected, countActual)
96-
}
97-
return nil
98-
}
99-
10090
res = getDelayedEvents(t, user)
10191
countExpected = 0
10292
must.MatchResponse(t, res, match.HTTPResponse{
10393
JSON: []match.JSON{
10494
match.JSONKeyArrayOfSize("delayed_events", numEvents),
105-
match.JSONArrayEach("delayed_events", checkContent),
10695
},
10796
})
10897

@@ -129,14 +118,26 @@ func TestDelayedEvents(t *testing.T) {
129118
countExpected = 0
130119
must.MatchResponse(t, res, match.HTTPResponse{
131120
JSON: []match.JSON{
132-
match.JSONArrayEach("chunk", checkContent),
121+
match.JSONArrayEach("chunk", func(val gjson.Result) error {
122+
content := val.Get("content").Map()
123+
if l := len(content); l != 1 {
124+
return fmt.Errorf("wrong number of content fields: expected 1, got %d", l)
125+
}
126+
countExpected++
127+
if countActual := content[countKey].Uint(); countActual != countExpected {
128+
return fmt.Errorf("wrong count in delayed event content: expected %v, got %v", countExpected, countActual)
129+
}
130+
return nil
131+
}),
133132
},
134133
})
135134
})
136135

137136
t.Run("delayed state events are sent on timeout", func(t *testing.T) {
138137
var res *http.Response
139138

139+
defer cleanupDelayedEvents(t, user)
140+
140141
stateKey := "to_send_on_timeout"
141142

142143
setterKey := "setter"
@@ -309,6 +310,8 @@ func TestDelayedEvents(t *testing.T) {
309310
t.Run("delayed state events can be sent on request", func(t *testing.T) {
310311
var res *http.Response
311312

313+
defer cleanupDelayedEvents(t, user)
314+
312315
stateKey := "to_send_on_request"
313316

314317
setterKey := "setter"
@@ -363,6 +366,8 @@ func TestDelayedEvents(t *testing.T) {
363366

364367
stateKey := "to_send_on_restarted_timeout"
365368

369+
defer cleanupDelayedEvents(t, user)
370+
366371
setterKey := "setter"
367372
setterExpected := "on_timeout"
368373
res = user.MustDo(
@@ -429,6 +434,8 @@ func TestDelayedEvents(t *testing.T) {
429434

430435
stateKey := "to_be_cancelled_by_same_user"
431436

437+
defer cleanupDelayedEvents(t, user)
438+
432439
setterKey := "setter"
433440
user.MustDo(
434441
t,
@@ -476,6 +483,9 @@ func TestDelayedEvents(t *testing.T) {
476483

477484
stateKey := "to_be_cancelled_by_other_user"
478485

486+
defer cleanupDelayedEvents(t, user)
487+
defer cleanupDelayedEvents(t, user2)
488+
479489
setterKey := "setter"
480490
user.MustDo(
481491
t,
@@ -524,6 +534,8 @@ func TestDelayedEvents(t *testing.T) {
524534

525535
var res *http.Response
526536

537+
defer cleanupDelayedEvents(t, user)
538+
527539
stateKey1 := "1"
528540
stateKey2 := "2"
529541

@@ -593,3 +605,27 @@ func getDelayedEvents(t *testing.T, user *client.CSAPI) *http.Response {
593605
t.Helper()
594606
return user.MustDo(t, "GET", getPathForUpdateDelayedEvents())
595607
}
608+
609+
func cleanupDelayedEvents(t *testing.T, user *client.CSAPI) {
610+
t.Helper()
611+
res := getDelayedEvents(t, user)
612+
defer res.Body.Close()
613+
body := must.ParseJSON(t, res.Body)
614+
for _, delayedEvent := range body.Get("delayed_events").Array() {
615+
delayID := delayedEvent.Get("delay_id").String()
616+
user.MustDo(
617+
t,
618+
"POST",
619+
append(getPathForUpdateDelayedEvents(), delayID),
620+
client.WithJSONBody(t, map[string]interface{}{
621+
"action": "cancel",
622+
}),
623+
)
624+
}
625+
626+
must.MatchResponse(t, getDelayedEvents(t, user), match.HTTPResponse{
627+
JSON: []match.JSON{
628+
match.JSONKeyArrayOfSize("delayed_events", 0),
629+
},
630+
})
631+
}

0 commit comments

Comments
 (0)