diff --git a/cmd/storage-migrate/integration_test.go b/cmd/storage-migrate/integration_test.go index d4997c0..1d15c90 100644 --- a/cmd/storage-migrate/integration_test.go +++ b/cmd/storage-migrate/integration_test.go @@ -45,6 +45,18 @@ func TestMigrateEndToEndAndIdempotent(t *testing.T) { target, cleanup := pgSchemaDSN(t) defer cleanup() fixture := buildFixture(t) + src, err := sql.Open("sqlite", fixture) + if err != nil { + t.Fatal(err) + } + defer src.Close() + var sourcePublic, sourceStaff, sourcePrivate, sourceSecret string + var sourceKeyVersion int64 + if err := src.QueryRow(`SELECT public_revision,staff_no_revision,private_revision,cursor_key_version,cursor_secret FROM account_directory_revision WHERE id=1`).Scan( + &sourcePublic, &sourceStaff, &sourcePrivate, &sourceKeyVersion, &sourceSecret, + ); err != nil { + t.Fatal(err) + } if err := cmdMigrate([]string{"--source", fixture, "--target", target, "--migration-id", "mig-e2e"}); err != nil { t.Fatalf("首次迁移:%v", err) @@ -61,6 +73,16 @@ func TestMigrateEndToEndAndIdempotent(t *testing.T) { } defer st.Close() db := st.DB() + var targetPublic, targetStaff, targetPrivate, targetSecret string + var targetKeyVersion int64 + if err := db.QueryRow(`SELECT public_revision,staff_no_revision,private_revision,cursor_key_version,cursor_secret FROM account_directory_revision WHERE id=1`).Scan( + &targetPublic, &targetStaff, &targetPrivate, &targetKeyVersion, &targetSecret, + ); err != nil { + t.Fatal(err) + } + if targetPublic != sourcePublic || targetStaff != sourceStaff || targetPrivate != sourcePrivate || targetKeyVersion != sourceKeyVersion || targetSecret != sourceSecret { + t.Fatal("迁移后的目录版本或游标密钥与源库不一致") + } var pinned, archived bool if err := db.QueryRow(`SELECT pinned, archived FROM conversations WHERE id='c1'`).Scan(&pinned, &archived); err != nil || !pinned || archived { t.Fatalf("布尔映射:pinned=%v archived=%v err=%v", pinned, archived, err)