mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-10 23:53:09 -06:00
PR comments
This commit is contained in:
parent
5134362162
commit
1ea58be604
|
|
@ -370,26 +370,26 @@ func testSendToDevice(t *testing.T, dbType test.DBType) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "incremental sync, one message", // this deletes message 1, as we advanced the since token
|
name: "incremental sync, one message", // this deletes message 1, as we advanced the since token
|
||||||
since: "s0_0_0_1_0_0_0_0_0",
|
since: types.StreamingToken{SendToDevicePosition: 1}.String(),
|
||||||
want: []string{
|
want: []string{
|
||||||
"message 2",
|
"message 2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "failed incremental sync, one message", // didn't advance since, so still the same message
|
name: "failed incremental sync, one message", // didn't advance since, so still the same message
|
||||||
since: "s0_0_0_1_0_0_0_0_0",
|
since: types.StreamingToken{SendToDevicePosition: 1}.String(),
|
||||||
want: []string{
|
want: []string{
|
||||||
"message 2",
|
"message 2",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "incremental sync, no message", // this should delete message 2
|
name: "incremental sync, no message", // this should delete message 2
|
||||||
since: "s0_0_0_2_0_0_0_0_0", // next_batch from previous sync
|
since: types.StreamingToken{SendToDevicePosition: 2}.String(), // next_batch from previous sync
|
||||||
want: []string{},
|
want: []string{},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "incremental sync, three new messages",
|
name: "incremental sync, three new messages",
|
||||||
since: "s0_0_0_2_0_0_0_0_0",
|
since: types.StreamingToken{SendToDevicePosition: 2}.String(),
|
||||||
sendMessagesCount: 3,
|
sendMessagesCount: 3,
|
||||||
want: []string{
|
want: []string{
|
||||||
"message 3", // message 2 was deleted in the previous test
|
"message 3", // message 2 was deleted in the previous test
|
||||||
|
|
@ -407,14 +407,14 @@ func testSendToDevice(t *testing.T, dbType test.DBType) {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "incremental sync, no messages", // advance the sync token, no new messages
|
name: "incremental sync, no messages", // advance the sync token, no new messages
|
||||||
since: "s0_0_0_5_0_0_0_0_0",
|
since: types.StreamingToken{SendToDevicePosition: 5}.String(),
|
||||||
want: []string{},
|
want: []string{},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
// send the messages, if any
|
// Send to-device messages of type "m.dendrite.test" with content `{"dummy":"message $counter"}`
|
||||||
for i := 0; i < tc.sendMessagesCount; i++ {
|
for i := 0; i < tc.sendMessagesCount; i++ {
|
||||||
msgCounter++
|
msgCounter++
|
||||||
msg := map[string]string{
|
msg := map[string]string{
|
||||||
|
|
@ -425,20 +425,21 @@ func testSendToDevice(t *testing.T, dbType test.DBType) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
time.Sleep((time.Millisecond * 15) * time.Duration(tc.sendMessagesCount)) // wait a bit, so the messages can be processed
|
time.Sleep((time.Millisecond * 15) * time.Duration(tc.sendMessagesCount)) // wait a bit, so the messages can be processed
|
||||||
// sync
|
// Execute a /sync request, recording the response
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
base.PublicClientAPIMux.ServeHTTP(w, test.NewRequest(t, "GET", "/_matrix/client/v3/sync", test.WithQueryParams(map[string]string{
|
base.PublicClientAPIMux.ServeHTTP(w, test.NewRequest(t, "GET", "/_matrix/client/v3/sync", test.WithQueryParams(map[string]string{
|
||||||
"access_token": alice.AccessToken,
|
"access_token": alice.AccessToken,
|
||||||
"since": tc.since,
|
"since": tc.since,
|
||||||
})))
|
})))
|
||||||
|
|
||||||
// verify
|
// Extract the to_device.events, # gets all values of an array, in this case a string slice with "message $counter" entries
|
||||||
events := gjson.Get(w.Body.String(), "to_device.events.#.content.dummy").Array()
|
events := gjson.Get(w.Body.String(), "to_device.events.#.content.dummy").Array()
|
||||||
got := make([]string, len(events))
|
got := make([]string, len(events))
|
||||||
for i := range events {
|
for i := range events {
|
||||||
got[i] = events[i].String()
|
got[i] = events[i].String()
|
||||||
}
|
}
|
||||||
t.Logf("[%s|since=%s]: Sync: %s", tc.name, tc.since, w.Body.String())
|
|
||||||
|
// Ensure the messages we received are as we expect them to be
|
||||||
if !reflect.DeepEqual(got, tc.want) {
|
if !reflect.DeepEqual(got, tc.want) {
|
||||||
t.Logf("[%s|since=%s]: Sync: %s", tc.name, tc.since, w.Body.String())
|
t.Logf("[%s|since=%s]: Sync: %s", tc.name, tc.since, w.Body.String())
|
||||||
t.Fatalf("[%s|since=%s]: got: %+v, want: %+v", tc.name, tc.since, got, tc.want)
|
t.Fatalf("[%s|since=%s]: got: %+v, want: %+v", tc.name, tc.since, got, tc.want)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue