This commit is contained in:
2026-08-17 19:13:08 +08:00
parent 5199146e97
commit cddd23e4c7
40 changed files with 1203 additions and 71 deletions
@@ -23,6 +23,10 @@ class IamOpenApiContractTest {
.contains("PermissionCodesApiResponse:")
.contains("TenantPageApiResponse:")
.contains("TenantApiResponse:")
.contains("PendingEnterpriseReviewListApiResponse:")
.contains("PendingEnterpriseReviewResponse:")
.contains("required: [id, tenantId, reviewType, status, tenantName, tenantCode, contactName, submittedAt]")
.contains("submittedAt: {type: string, format: date-time, description: 提交审核时间}")
.contains("TenantSuccess:")
.contains("salesOwnerName:")
.contains("paymentTermDays:")
@@ -46,6 +46,11 @@ class PlatformTenantControllerContractTest {
assertEquals("hasAuthority('platform:customer:review')",
method.getAnnotation(PreAuthorize.class).value());
ParameterizedType apiResponse = (ParameterizedType) method.getGenericReturnType();
ParameterizedType list = (ParameterizedType) apiResponse.getActualTypeArguments()[0];
assertEquals(java.util.List.class, list.getRawType());
assertEquals(com.baiyue.iam.dto.TenantDtos.PendingReviewResponse.class,
list.getActualTypeArguments()[0]);
}
@Test
@@ -30,6 +30,7 @@ import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.verify;
@@ -93,6 +94,37 @@ class TenantServiceTest {
verify(repository).pageMerchants(1, 10, "Example", "ACTIVE");
}
@Test
void pendingReviewsIncludeCustomerSummaryWithoutPerReviewQueries() {
IamTenantReview review = review(71L, 10001L);
review.setReviewType("REGISTER");
review.setCreatedAt(LocalDateTime.of(2026, 8, 17, 10, 27));
IamTenant tenant = merchant(10001L, "PENDING");
tenant.setTenantCode("TEN10001");
tenant.setTenantName("Example Merchant");
tenant.setContactName("Alice");
tenant.setContactPhone("13800138000");
tenant.setContactEmail("alice@example.com");
when(repository.findPendingReviews()).thenReturn(List.of(review));
when(repository.findMerchantsByIds(Set.of(10001L))).thenReturn(List.of(tenant));
var result = service.pendingReviews();
assertEquals(1, result.size());
assertEquals(71L, result.get(0).id());
assertEquals(10001L, result.get(0).tenantId());
assertEquals("REGISTER", result.get(0).reviewType());
assertEquals("PENDING", result.get(0).status());
assertEquals("Example Merchant", result.get(0).tenantName());
assertEquals("TEN10001", result.get(0).tenantCode());
assertEquals("Alice", result.get(0).contactName());
assertEquals("13800138000", result.get(0).contactPhone());
assertEquals("alice@example.com", result.get(0).contactEmail());
assertEquals(LocalDateTime.of(2026, 8, 17, 10, 27), result.get(0).submittedAt());
verify(repository).findMerchantsByIds(Set.of(10001L));
verify(repository, never()).findTenant(10001L);
}
@Test
void pageFinanceCustomersKeepsFullContactSummaryForInternalFinance() {
IamTenant tenant = merchant(10001L, "ACTIVE");