This commit is contained in:
2026-09-02 10:05:56 +08:00
parent 8a66af81b1
commit da56f261cd
3 changed files with 37 additions and 0 deletions
@@ -7,11 +7,21 @@ import org.junit.jupiter.api.Test;
import org.springframework.core.io.ClassPathResource;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
class LoginIdentifierContractTest {
@Test
void registrationExposesAnAccountPhoneInsteadOfALegalPersonPhoneAlias() {
var componentNames = Arrays.stream(MerchantRegisterRequest.class.getRecordComponents())
.map(component -> component.getName())
.toList();
assertThat(componentNames).contains("phone").doesNotContain("legalPhone");
}
@Test
void mainlandMobileRuleRejectsPlaceholderNumbersAcrossJavaAndSql() throws Exception {
try (var factory = Validation.buildDefaultValidatorFactory()) {
@@ -54,6 +54,10 @@ class IamOpenApiContractTest {
.contains("UpdateMemberRequest:")
.contains("membershipId: {type: integer, format: int64}")
.contains("roleIds: {type: array, items: {type: integer, format: int64}}")
.contains("/api/platform/v1/iam/tenants/administrator-phone-availability:")
.doesNotContain("/api/platform/v1/iam/tenants/contact-phone-availability:")
.contains("公司联系电话,不作为登录标识且不要求跨企业唯一")
.contains("法人身份证、货代资质证书和银行开户许可证选填")
.contains("'422': {$ref: '#/components/responses/UnprocessableEntity'}");
Map<String, Object> openApi = new Yaml().load(document);
@@ -0,0 +1,23 @@
package com.baiyue.iam.repository;
import org.junit.jupiter.api.Test;
import org.springframework.core.io.ClassPathResource;
import java.nio.charset.StandardCharsets;
import static org.assertj.core.api.Assertions.assertThat;
class IdentityContactDecouplingContractTest {
@Test
void baselineKeepsCompanyContactNonUniqueAndUserPhoneAsLoginIdentity() throws Exception {
String sql = new ClassPathResource("db/iam.sql")
.getContentAsString(StandardCharsets.UTF_8);
assertThat(sql)
.contains("公司联系电话,非登录标识且不要求跨企业唯一")
.contains("用户登录手机号,与企业联系电话独立")
.doesNotContain("UNIQUE KEY uk_iam_tenant_contact_phone")
.doesNotContain("UNIQUE KEY uk_tenant_contact_phone");
}
}