Update tests, fix message deletion

This commit is contained in:
Till Faelligen 2022-08-02 13:50:04 +02:00
parent 8eeb4ac562
commit 5134362162
No known key found for this signature in database
GPG key ID: 3DF82D8AB9211D4E
3 changed files with 7 additions and 20 deletions

View file

@ -58,7 +58,7 @@ const selectSendToDeviceMessagesSQL = `
const deleteSendToDeviceMessagesSQL = ` const deleteSendToDeviceMessagesSQL = `
DELETE FROM syncapi_send_to_device DELETE FROM syncapi_send_to_device
WHERE user_id = $1 AND device_id = $2 AND id < $3 WHERE user_id = $1 AND device_id = $2 AND id <= $3
` `
const selectMaxSendToDeviceIDSQL = "" + const selectMaxSendToDeviceIDSQL = "" +

View file

@ -55,7 +55,7 @@ const selectSendToDeviceMessagesSQL = `
const deleteSendToDeviceMessagesSQL = ` const deleteSendToDeviceMessagesSQL = `
DELETE FROM syncapi_send_to_device DELETE FROM syncapi_send_to_device
WHERE user_id = $1 AND device_id = $2 AND id < $3 WHERE user_id = $1 AND device_id = $2 AND id <= $3
` `
const selectMaxSendToDeviceIDSQL = "" + const selectMaxSendToDeviceIDSQL = "" +

View file

@ -416,11 +416,6 @@ func TestSendToDeviceBehaviour(t *testing.T) {
t.Fatal("first call should have no updates") t.Fatal("first call should have no updates")
} }
err = db.CleanSendToDeviceUpdates(context.Background(), alice.ID, deviceID, 100)
if err != nil {
return
}
// Try sending a message. // Try sending a message.
streamPos, err := db.StoreNewSendForDeviceMessage(ctx, alice.ID, deviceID, gomatrixserverlib.SendToDeviceEvent{ streamPos, err := db.StoreNewSendForDeviceMessage(ctx, alice.ID, deviceID, gomatrixserverlib.SendToDeviceEvent{
Sender: bob.ID, Sender: bob.ID,
@ -441,43 +436,35 @@ func TestSendToDeviceBehaviour(t *testing.T) {
if count := len(events); count != 1 { if count := len(events); count != 1 {
t.Fatalf("second call should have one update, got %d", count) t.Fatalf("second call should have one update, got %d", count)
} }
err = db.CleanSendToDeviceUpdates(context.Background(), alice.ID, deviceID, streamPos)
if err != nil {
return
}
// At this point we should still have one message because we haven't progressed the // At this point we should still have one message because we haven't progressed the
// sync position yet. This is equivalent to the client failing to /sync and retrying // sync position yet. This is equivalent to the client failing to /sync and retrying
// with the same position. // with the same position.
streamPos, events, err = db.SendToDeviceUpdatesForSync(ctx, alice.ID, deviceID, 0, 100) streamPos, events, err = db.SendToDeviceUpdatesForSync(ctx, alice.ID, deviceID, 0, streamPos)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if len(events) != 1 { if len(events) != 1 {
t.Fatal("third call should have one update still") t.Fatal("third call should have one update still")
} }
err = db.CleanSendToDeviceUpdates(context.Background(), alice.ID, deviceID, streamPos+1) err = db.CleanSendToDeviceUpdates(context.Background(), alice.ID, deviceID, streamPos)
if err != nil { if err != nil {
return return
} }
// At this point we should now have no updates, because we've progressed the sync // At this point we should now have no updates, because we've progressed the sync
// position. Therefore the update from before will not be sent again. // position. Therefore the update from before will not be sent again.
_, events, err = db.SendToDeviceUpdatesForSync(ctx, alice.ID, deviceID, streamPos+1, streamPos+2) _, events, err = db.SendToDeviceUpdatesForSync(ctx, alice.ID, deviceID, streamPos, streamPos+10)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if len(events) != 0 { if len(events) != 0 {
t.Fatal("fourth call should have no updates") t.Fatal("fourth call should have no updates")
} }
err = db.CleanSendToDeviceUpdates(context.Background(), alice.ID, deviceID, streamPos+1)
if err != nil {
return
}
// At this point we should still have no updates, because no new updates have been // At this point we should still have no updates, because no new updates have been
// sent. // sent.
_, events, err = db.SendToDeviceUpdatesForSync(ctx, alice.ID, deviceID, streamPos, streamPos+2) _, events, err = db.SendToDeviceUpdatesForSync(ctx, alice.ID, deviceID, streamPos, streamPos+10)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -491,7 +478,7 @@ func TestSendToDeviceBehaviour(t *testing.T) {
streamPos, err = db.StoreNewSendForDeviceMessage(ctx, alice.ID, deviceID, gomatrixserverlib.SendToDeviceEvent{ streamPos, err = db.StoreNewSendForDeviceMessage(ctx, alice.ID, deviceID, gomatrixserverlib.SendToDeviceEvent{
Sender: bob.ID, Sender: bob.ID,
Type: "m.type", Type: "m.type",
Content: json.RawMessage(fmt.Sprintf(`{ "count": %d }`, i)), Content: json.RawMessage(fmt.Sprintf(`{"count":%d}`, i)),
}) })
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)