fix: sync system identity upsert idempotency

Sync telesrv c7c5a3d (fix(auth): make system identity upsert idempotent).

Skipped telesrv docs changes per public sync rules.
This commit is contained in:
A 2026-07-20 16:51:55 +08:00
parent 004365ed48
commit a6fe2574fe
2 changed files with 60 additions and 22 deletions

View file

@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"reflect"
"strings"
"sync"
"sync/atomic"
"testing"
@ -208,7 +209,7 @@ func TestLoginCodeDeliveryPostgresCommitAckLossRecoversFromReceipt(t *testing.T)
}
}
func TestLoginCodeDeliveryPostgresDifferentUsersDoNotRewriteOfficialUser(t *testing.T) {
func TestLoginCodeDeliveryPostgresDifferentUsersDoNotRewriteOfficialIdentity(t *testing.T) {
pool := testPool(t)
ctx := context.Background()
firstUser := createLoginCodeDeliveryTestUser(t, ctx, pool, "official-row-first")
@ -222,6 +223,16 @@ func TestLoginCodeDeliveryPostgresDifferentUsersDoNotRewriteOfficialUser(t *test
if err := pool.QueryRow(ctx, `SELECT xmin::text FROM users WHERE id = $1`, domain.OfficialSystemUserID).Scan(&xminBefore); err != nil {
t.Fatalf("load official user xmin: %v", err)
}
var usernameBefore, usernameXminBefore string
if err := pool.QueryRow(ctx, `
SELECT username_lower, xmin::text
FROM peer_usernames
WHERE peer_type = 'user' AND peer_id = $1`, domain.OfficialSystemUserID).Scan(&usernameBefore, &usernameXminBefore); err != nil {
t.Fatalf("load official username identity: %v", err)
}
if want := strings.ToLower(domain.OfficialSystemUser().Username); usernameBefore != want {
t.Fatalf("official username = %q, want %q", usernameBefore, want)
}
const workers = 12
users := make([]domain.User, workers)
@ -256,6 +267,16 @@ func TestLoginCodeDeliveryPostgresDifferentUsersDoNotRewriteOfficialUser(t *test
if xminAfter != xminBefore {
t.Fatalf("official system user row was rewritten: xmin %s -> %s", xminBefore, xminAfter)
}
var usernameAfter, usernameXminAfter string
if err := pool.QueryRow(ctx, `
SELECT username_lower, xmin::text
FROM peer_usernames
WHERE peer_type = 'user' AND peer_id = $1`, domain.OfficialSystemUserID).Scan(&usernameAfter, &usernameXminAfter); err != nil {
t.Fatalf("reload official username identity: %v", err)
}
if usernameAfter != usernameBefore || usernameXminAfter != usernameXminBefore {
t.Fatalf("official username identity was rewritten: %q/%s -> %q/%s", usernameBefore, usernameXminBefore, usernameAfter, usernameXminAfter)
}
}
func TestLoginCodeDeliveryPostgresReceiptRetentionIsBoundedAndSeekOrdered(t *testing.T) {