diff --git a/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/CertAuditServiceImplTest.java b/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/CertAuditServiceImplTest.java index b780f977..df9bbd10 100644 --- a/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/CertAuditServiceImplTest.java +++ b/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/CertAuditServiceImplTest.java @@ -38,6 +38,7 @@ import static org.mockito.Mockito.when; import static org.springblade.transport.support.CertAuditPermissions.DRIVER_AUDIT_MENU; import static org.springblade.transport.support.CertAuditPermissions.DRIVER_VIEW_MENU; import static org.springblade.transport.support.CertAuditPermissions.VEHICLE_AUDIT_MENU; +import static org.springblade.transport.support.CertAuditPermissions.VEHICLE_VIEW_MENU; /** * 管理端认证审核测试。 @@ -357,6 +358,18 @@ class CertAuditServiceImplTest { assertNull(detail.getEffectiveRecordId()); } + @Test + @DisplayName("审核详情:驳回原因回填,供详情页直接展示") + void detailReturnsRejectReason() { + TransportCertRecord record = vehicleRecord(TransportCertRecord.STATUS_REJECTED); + record.setSnapshotJson("{\"vin\":\"NEW\"}"); + record.setRejectReason("照片不清晰"); + when(certRecordService.getById(RECORD_ID)).thenReturn(record); + when(transportVehicleService.getById(VEHICLE_ID)).thenReturn(vehicle(null)); + + assertEquals("照片不清晰", service.detail(RECORD_ID).getRejectReason()); + } + // ------------------------------------------------------------ 审核能力 @Test @@ -395,6 +408,29 @@ class CertAuditServiceImplTest { assertFalse(capability.getCanAudit()); } + @Test + @DisplayName("能力判定:只有车辆查看菜单时也能查看列表与详情,但审核按钮禁用") + void capabilityVehicleViewWithoutAudit() { + when(permissionHandler.hasMenu(VEHICLE_VIEW_MENU)).thenReturn(true); + + CertAuditCapabilityVO capability = service.capability(); + + assertTrue(capability.getCanView()); + assertFalse(capability.getCanAudit(), "只有查看权限时不得允许审核"); + } + + @Test + @DisplayName("能力判定:查看与审核菜单分属不同对象时两项都放行") + void capabilityMixedMenus() { + when(permissionHandler.hasMenu(DRIVER_VIEW_MENU)).thenReturn(true); + when(permissionHandler.hasMenu(VEHICLE_AUDIT_MENU)).thenReturn(true); + + CertAuditCapabilityVO capability = service.capability(); + + assertTrue(capability.getCanView()); + assertTrue(capability.getCanAudit()); + } + // -------------------------------------------- 驳回原因的展示缓存 @Test