feat: complete IM P0 and P1 reliability work
This commit is contained in:
@@ -66,12 +66,12 @@ func TestUserCreate(t *testing.T) {
|
||||
}
|
||||
var count int
|
||||
|
||||
err := db.QueryRow(ctx, "SELECT COUNT(*) FROM users").Scan(&count)
|
||||
err := db.QueryRow(ctx, "SELECT COUNT(*) FROM im_users").Scan(&count)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if count == 0 {
|
||||
t.Error("No users created!")
|
||||
t.Error("No im_users created!")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ func TestCredUpsert(t *testing.T) {
|
||||
t.Error("Should return duplicate error but got", err)
|
||||
}
|
||||
|
||||
// Test add new unvalidated credentials
|
||||
// Test add new unvalidated im_credentials
|
||||
inserted, err := adp.CredUpsert(testData.Creds[3])
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -183,7 +183,7 @@ func TestTopicCreateP2P(t *testing.T) {
|
||||
var got types.Subscription
|
||||
var userId int64
|
||||
var modeWant, modeGiven []byte
|
||||
err = db.QueryRow(ctx, "SELECT createdat,updatedat,deletedat,userid,topic,delid,recvseqid,readseqid,modewant,modegiven,private FROM subscriptions WHERE topic=$1 AND userid=$2",
|
||||
err = db.QueryRow(ctx, "SELECT createdat,updatedat,deletedat,userid,topic,delid,recvseqid,readseqid,modewant,modegiven,private FROM im_subscriptions WHERE topic=$1 AND userid=$2",
|
||||
testData.Subs[2].Topic, decodeUid(testData.Subs[2].User)).Scan(&got.CreatedAt,
|
||||
&got.UpdatedAt, &got.DeletedAt, &userId, &got.Topic, &got.DelId, &got.RecvSeqId, &got.ReadSeqId,
|
||||
&modeWant, &modeGiven, &got.Private)
|
||||
@@ -231,7 +231,7 @@ func TestMessageSave(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// Some messages are soft deleted, but it's ignored by adp.MessageSave
|
||||
// Some im_messages are soft deleted, but it's ignored by adp.MessageSave
|
||||
for _, msg := range testData.Msgs {
|
||||
if len(msg.DeletedFor) > 0 {
|
||||
for _, del := range msg.DeletedFor {
|
||||
@@ -284,7 +284,7 @@ func TestUserGetAll(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(got) > 0 {
|
||||
t.Error("result users should be zero length, got", len(got))
|
||||
t.Error("result im_users should be zero length, got", len(got))
|
||||
}
|
||||
|
||||
got, err = adp.UserGetAll(types.ParseUserId("usr"+testData.Users[0].Id), types.ParseUserId("usr"+testData.Users[1].Id))
|
||||
@@ -516,7 +516,7 @@ func TestChannelsForUser(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Should return empty slice since we don't have channel subscriptions in test data
|
||||
// Should return empty slice since we don't have channel im_subscriptions in test data
|
||||
if len(channels) != 0 {
|
||||
t.Error(mismatchErrorString("Channels length", len(channels), 0))
|
||||
}
|
||||
@@ -663,7 +663,7 @@ func TestUserUpdate(t *testing.T) {
|
||||
UpdatedAt time.Time
|
||||
CreatedAt time.Time
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT useragent, updatedat, createdat FROM users WHERE id=$1",
|
||||
err = db.QueryRow(ctx, "SELECT useragent, updatedat, createdat FROM im_users WHERE id=$1",
|
||||
decodeUid(testData.Users[0].Id)).Scan(&got.UserAgent, &got.UpdatedAt, &got.CreatedAt)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -726,9 +726,9 @@ func TestUserGetUnvalidated(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
// Should return empty slice since all test users are considered validated
|
||||
// Should return empty slice since all test im_users are considered validated
|
||||
if len(uids) > 0 {
|
||||
t.Error("Expected no unvalidated users in test data")
|
||||
t.Error("Expected no unvalidated im_users in test data")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -744,7 +744,7 @@ func TestCredFail(t *testing.T) {
|
||||
UpdatedAt time.Time
|
||||
CreatedAt time.Time
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT retries, updatedat, createdat FROM credentials WHERE userid=$1 AND method=$2 AND value=$3",
|
||||
err = db.QueryRow(ctx, "SELECT retries, updatedat, createdat FROM im_credentials WHERE userid=$1 AND method=$2 AND value=$3",
|
||||
decodeUid(testData.Creds[3].User), "tel", testData.Creds[3].Value).Scan(&got.Retries, &got.UpdatedAt, &got.CreatedAt)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -769,7 +769,7 @@ func TestCredConfirm(t *testing.T) {
|
||||
CreatedAt time.Time
|
||||
Done bool
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT updatedat, createdat, done FROM credentials WHERE userid=$1 AND method=$2 AND value=$3",
|
||||
err = db.QueryRow(ctx, "SELECT updatedat, createdat, done FROM im_credentials WHERE userid=$1 AND method=$2 AND value=$3",
|
||||
decodeUid(testData.Creds[3].User), "tel", testData.Creds[3].Value).Scan(&got.UpdatedAt, &got.CreatedAt, &got.Done)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -791,7 +791,7 @@ func TestAuthUpdRecord(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var got []byte
|
||||
err = db.QueryRow(ctx, "SELECT secret FROM auth WHERE uname=$1", rec.Unique).Scan(&got)
|
||||
err = db.QueryRow(ctx, "SELECT secret FROM im_auth WHERE uname=$1", rec.Unique).Scan(&got)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -799,7 +799,7 @@ func TestAuthUpdRecord(t *testing.T) {
|
||||
t.Error(mismatchErrorString("Secret", got, rec.Secret))
|
||||
}
|
||||
|
||||
// Test with auth ID (unique) change
|
||||
// Test with im_auth ID (unique) change
|
||||
newId := "basic:bob12345"
|
||||
err = adp.AuthUpdRecord(types.ParseUserId("usr"+rec.UserId), rec.Scheme, newId,
|
||||
rec.AuthLvl, newSecret, rec.Expires)
|
||||
@@ -808,12 +808,12 @@ func TestAuthUpdRecord(t *testing.T) {
|
||||
}
|
||||
// Test if old ID deleted
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM auth WHERE uname=$1", rec.Unique).Scan(&count)
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_auth WHERE uname=$1", rec.Unique).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if count != 0 {
|
||||
t.Error("Old auth record not deleted")
|
||||
t.Error("Old im_auth record not deleted")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -832,7 +832,7 @@ func TestTopicUpdateOnMessage(t *testing.T) {
|
||||
TouchedAt time.Time
|
||||
SeqId int
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT touchedat, seqid FROM topics WHERE name=$1", testData.Topics[2].Id).
|
||||
err = db.QueryRow(ctx, "SELECT touchedat, seqid FROM im_topics WHERE name=$1", testData.Topics[2].Id).
|
||||
Scan(&got.TouchedAt, &got.SeqId)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -852,7 +852,7 @@ func TestTopicUpdate(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var got time.Time
|
||||
err = db.QueryRow(ctx, "SELECT updatedat FROM topics WHERE name=$1", testData.Topics[0].Id).Scan(&got)
|
||||
err = db.QueryRow(ctx, "SELECT updatedat FROM im_topics WHERE name=$1", testData.Topics[0].Id).Scan(&got)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -870,11 +870,11 @@ func TestTopicUpdateSubCnt(t *testing.T) {
|
||||
|
||||
// Verify the subscription count was updated correctly
|
||||
var subcnt int
|
||||
err = db.QueryRow(ctx, "SELECT subcnt FROM topics WHERE name=$1", testData.Topics[0].Id).Scan(&subcnt)
|
||||
err = db.QueryRow(ctx, "SELECT subcnt FROM im_topics WHERE name=$1", testData.Topics[0].Id).Scan(&subcnt)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// Should match the number of active subscriptions
|
||||
// Should match the number of active im_subscriptions
|
||||
if subcnt < 0 {
|
||||
t.Error("Subscription count should be non-negative")
|
||||
}
|
||||
@@ -886,7 +886,7 @@ func TestTopicOwnerChange(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var got int64
|
||||
err = db.QueryRow(ctx, "SELECT owner FROM topics WHERE name=$1", testData.Topics[0].Id).Scan(&got)
|
||||
err = db.QueryRow(ctx, "SELECT owner FROM im_topics WHERE name=$1", testData.Topics[0].Id).Scan(&got)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -905,7 +905,7 @@ func TestSubsUpdate(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var got time.Time
|
||||
err = db.QueryRow(ctx, "SELECT updatedat FROM subscriptions WHERE topic=$1 AND userid=$2",
|
||||
err = db.QueryRow(ctx, "SELECT updatedat FROM im_subscriptions WHERE topic=$1 AND userid=$2",
|
||||
testData.Topics[0].Id, decodeUid(testData.Users[0].Id)).Scan(&got)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -918,7 +918,7 @@ func TestSubsUpdate(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT updatedat FROM subscriptions WHERE topic=$1 LIMIT 1",
|
||||
err = db.QueryRow(ctx, "SELECT updatedat FROM im_subscriptions WHERE topic=$1 LIMIT 1",
|
||||
testData.Topics[1].Id).Scan(&got)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -934,7 +934,7 @@ func TestSubsDelete(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var deletedat sql.NullTime
|
||||
err = db.QueryRow(ctx, "SELECT deletedat FROM subscriptions WHERE topic=$1 AND userid=$2",
|
||||
err = db.QueryRow(ctx, "SELECT deletedat FROM im_subscriptions WHERE topic=$1 AND userid=$2",
|
||||
testData.Topics[1].Id, decodeUid(testData.Users[0].Id)).Scan(&deletedat)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -957,7 +957,7 @@ func TestDeviceUpsert(t *testing.T) {
|
||||
DeviceId string
|
||||
Platform string
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT deviceid, platform FROM devices WHERE userid=$1 LIMIT 1",
|
||||
err = db.QueryRow(ctx, "SELECT deviceid, platform FROM im_devices WHERE userid=$1 LIMIT 1",
|
||||
decodeUid(testData.Users[0].Id)).Scan(&got.DeviceId, &got.Platform)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -972,7 +972,7 @@ func TestDeviceUpsert(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT platform FROM devices WHERE userid=$1 AND deviceid=$2",
|
||||
err = db.QueryRow(ctx, "SELECT platform FROM im_devices WHERE userid=$1 AND deviceid=$2",
|
||||
decodeUid(testData.Users[0].Id), testData.Devs[0].DeviceId).Scan(&got.Platform)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1001,7 +1001,7 @@ func TestMessageAttachments(t *testing.T) {
|
||||
}
|
||||
// Check if attachments were linked
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM filemsglinks WHERE msgid=$1",
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_filemsglinks WHERE msgid=$1",
|
||||
int64(types.ParseUid(testData.Msgs[1].Id))).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1036,9 +1036,9 @@ func TestDeviceGetAll(t *testing.T) {
|
||||
if count < 1 {
|
||||
t.Fatal(mismatchErrorString("count", count, ">=1"))
|
||||
}
|
||||
// Test that devices exist for the users
|
||||
// Test that im_devices exist for the im_users
|
||||
if len(gotDevs) == 0 {
|
||||
t.Error("Expected devices for users")
|
||||
t.Error("Expected im_devices for im_users")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1048,7 +1048,7 @@ func TestDeviceDelete(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM devices WHERE userid=$1 AND deviceid=$2",
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_devices WHERE userid=$1 AND deviceid=$2",
|
||||
decodeUid(testData.Users[1].Id), testData.Devs[0].DeviceId).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1061,13 +1061,13 @@ func TestDeviceDelete(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM devices WHERE userid=$1",
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_devices WHERE userid=$1",
|
||||
decodeUid(testData.Users[2].Id)).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if count != 0 {
|
||||
t.Error("All devices not deleted:", count)
|
||||
t.Error("All im_devices not deleted:", count)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1138,7 +1138,7 @@ func TestCredDel(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM credentials WHERE method='email' AND value='alice@test.example.com'").Scan(&count)
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_credentials WHERE method='email' AND value='alice@test.example.com'").Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -1150,7 +1150,7 @@ func TestCredDel(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM credentials WHERE userid=$1",
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_credentials WHERE userid=$1",
|
||||
decodeUid(testData.Users[1].Id)).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1161,7 +1161,7 @@ func TestCredDel(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestAuthDelScheme(t *testing.T) {
|
||||
// Test deleting auth scheme
|
||||
// Test deleting im_auth scheme
|
||||
err := adp.AuthDelScheme(types.ParseUserId("usr"+testData.Recs[1].UserId), testData.Recs[1].Scheme)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1207,15 +1207,15 @@ func TestMessageDeleteList(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Check messages in dellog
|
||||
// Check im_messages in im_dellog
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM dellog WHERE topic=$1 AND deletedfor=$2",
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_dellog WHERE topic=$1 AND deletedfor=$2",
|
||||
toDel.Topic, decodeUid(toDel.DeletedFor)).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if count == 0 {
|
||||
t.Error("No dellog entries created")
|
||||
t.Error("No im_dellog entries created")
|
||||
}
|
||||
|
||||
// Hard delete test
|
||||
@@ -1234,8 +1234,8 @@ func TestMessageDeleteList(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Check if messages content was cleared
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM messages WHERE topic=$1 AND content IS NOT NULL",
|
||||
// Check if im_messages content was cleared
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_messages WHERE topic=$1 AND content IS NOT NULL",
|
||||
toDel.Topic).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1248,7 +1248,7 @@ func TestMessageDeleteList(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM messages WHERE topic=$1", testData.Topics[0].Id).Scan(&count)
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_messages WHERE topic=$1", testData.Topics[0].Id).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -1263,7 +1263,7 @@ func TestTopicDelete(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var state int
|
||||
err = db.QueryRow(ctx, "SELECT state FROM topics WHERE name=$1", testData.Topics[1].Id).Scan(&state)
|
||||
err = db.QueryRow(ctx, "SELECT state FROM im_topics WHERE name=$1", testData.Topics[1].Id).Scan(&state)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -1277,7 +1277,7 @@ func TestTopicDelete(t *testing.T) {
|
||||
}
|
||||
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM topics WHERE name=$1", testData.Topics[0].Id).Scan(&count)
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_topics WHERE name=$1", testData.Topics[0].Id).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -1302,7 +1302,7 @@ func TestUserDelete(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var state int
|
||||
err = db.QueryRow(ctx, "SELECT state FROM users WHERE id=$1",
|
||||
err = db.QueryRow(ctx, "SELECT state FROM im_users WHERE id=$1",
|
||||
decodeUid(testData.Users[0].Id)).Scan(&state)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@@ -1316,7 +1316,7 @@ func TestUserDelete(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var count int
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM users WHERE id=$1",
|
||||
err = db.QueryRow(ctx, "SELECT COUNT(*) FROM im_users WHERE id=$1",
|
||||
decodeUid(testData.Users[1].Id)).Scan(&count)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
||||
Reference in New Issue
Block a user