From 6ffd56a0a33515eb037be9bf1550d01c907e8b69 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Thu, 17 Sep 2026 13:59:31 +0800 Subject: [PATCH] test(auth): align SQL contracts with clean initialization --- .../AuthLoginIdentifiersSqlContractTest.java | 15 +++++++++++++-- .../InitialAccountSeedSqlContractTest.java | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/auth/src/test/java/com/baiyue/auth/repository/AuthLoginIdentifiersSqlContractTest.java b/auth/src/test/java/com/baiyue/auth/repository/AuthLoginIdentifiersSqlContractTest.java index 7a9e163ab..9de6afe0e 100644 --- a/auth/src/test/java/com/baiyue/auth/repository/AuthLoginIdentifiersSqlContractTest.java +++ b/auth/src/test/java/com/baiyue/auth/repository/AuthLoginIdentifiersSqlContractTest.java @@ -11,10 +11,21 @@ import static org.assertj.core.api.Assertions.assertThat; class AuthLoginIdentifiersSqlContractTest { @Test - void backfillsOnlyUniquelyOwnedPhonesAndKeepsDuplicateLegacyPhonesUnbound() throws Exception { + void legacyMigrationBackfillsOnlyUniquelyOwnedPhonesAndKeepsDuplicatesUnbound() throws Exception { assertSafeBackfill(new ClassPathResource("db/auth-login-identifiers.sql") .getContentAsString(StandardCharsets.UTF_8)); - assertSafeBackfill(Files.readString(unifiedSql(), StandardCharsets.UTF_8)); + } + + @Test + void emptyDatabaseInitializationDeclaresPhoneUniquenessWithoutLegacyBackfill() throws Exception { + String sql = Files.readString(unifiedSql(), StandardCharsets.UTF_8); + + assertThat(sql) + .contains("phone varchar(32) DEFAULT NULL") + .contains("UNIQUE KEY uk_auth_account_phone (phone)") + .doesNotContain("phone NOT REGEXP '^1[3-9][0-9]{9}$'") + .doesNotContain("HAVING COUNT(DISTINCT auth_user_id) = 1") + .doesNotContain("ALTER TABLE auth_account"); } private static void assertSafeBackfill(String sql) { diff --git a/auth/src/test/java/com/baiyue/auth/repository/InitialAccountSeedSqlContractTest.java b/auth/src/test/java/com/baiyue/auth/repository/InitialAccountSeedSqlContractTest.java index 82620e90c..8c99aec1c 100644 --- a/auth/src/test/java/com/baiyue/auth/repository/InitialAccountSeedSqlContractTest.java +++ b/auth/src/test/java/com/baiyue/auth/repository/InitialAccountSeedSqlContractTest.java @@ -19,8 +19,8 @@ class InitialAccountSeedSqlContractTest { private static void assertAccountSeed(String sql) { assertThat(sql) - .contains("(1000001, 'platform_admin'") - .contains("'平台系统管理员', 'ACTIVE'") + .containsPattern("\\(1000001\\s*,\\s*'platform_admin'") + .containsPattern("'平台系统管理员'\\s*,\\s*'ACTIVE'") .contains("password_change_required") .doesNotContain("merchant_admin") .doesNotContain("IT_TEST")