fix: update test files for platformRoles parameter in lifecycle governance methods

All lifecycle methods (hideSkill, archiveSkill, unarchiveSkill, deleteVersion,
unhideSkill) now accept a Set<String> platformRoles parameter for SUPER_ADMIN/
SKILL_ADMIN bypass. Updated all test calls to pass null for this parameter.
AdminSkillControllerTest now mocks hideSkillAsAdmin instead of hideSkill.
This commit is contained in:
chenbaowang 2026-04-24 18:50:17 +08:00
parent 189b3e7207
commit 4ae9518add
5 changed files with 20 additions and 17 deletions

View file

@ -48,7 +48,7 @@ class AdminSkillControllerTest {
@Test
void hideSkill_returnsUpdatedResponse() throws Exception {
Skill skill = new Skill(1L, "demo", "owner", SkillVisibility.PUBLIC);
given(skillGovernanceService.hideSkill(org.mockito.ArgumentMatchers.eq(10L), org.mockito.ArgumentMatchers.eq("admin"), org.mockito.ArgumentMatchers.any(), org.mockito.ArgumentMatchers.any(), org.mockito.ArgumentMatchers.any(), org.mockito.ArgumentMatchers.eq("policy")))
given(skillGovernanceService.hideSkillAsAdmin(org.mockito.ArgumentMatchers.eq(10L), org.mockito.ArgumentMatchers.eq("admin"), org.mockito.ArgumentMatchers.any(), org.mockito.ArgumentMatchers.any(), org.mockito.ArgumentMatchers.eq("policy")))
.willReturn(skill);
PlatformPrincipal principal = new PlatformPrincipal("admin", "admin", "a@example.com", "", "github", Set.of("SUPER_ADMIN"));

View file

@ -1,5 +1,6 @@
package com.iflytek.skillhub.controller.portal;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
@ -88,7 +89,7 @@ class SkillLifecycleControllerTest {
given(namespaceRepository.findBySlug("global")).willReturn(java.util.Optional.of(namespace));
given(skillSlugResolutionService.resolve(1L, "demo-skill", "usr_1", SkillSlugResolutionService.Preference.CURRENT_USER))
.willReturn(skill);
given(skillGovernanceService.archiveSkill(eq(1L), eq("usr_1"), anyMap(), nullable(String.class), nullable(String.class), eq("cleanup")))
given(skillGovernanceService.archiveSkill(eq(1L), eq("usr_1"), anyMap(), any(), nullable(String.class), nullable(String.class), eq("cleanup")))
.willReturn(skillWithStatus(skill, com.iflytek.skillhub.domain.skill.SkillStatus.ARCHIVED));
mockMvc.perform(post("/api/web/skills/global/demo-skill/archive")
@ -116,7 +117,7 @@ class SkillLifecycleControllerTest {
given(namespaceRepository.findBySlug("global")).willReturn(java.util.Optional.of(namespace));
given(skillSlugResolutionService.resolve(1L, "demo-skill", "usr_1", SkillSlugResolutionService.Preference.CURRENT_USER))
.willReturn(skill);
given(skillGovernanceService.unarchiveSkill(eq(1L), eq("usr_1"), anyMap(), nullable(String.class), nullable(String.class)))
given(skillGovernanceService.unarchiveSkill(eq(1L), eq("usr_1"), anyMap(), any(), nullable(String.class), nullable(String.class)))
.willReturn(skillWithStatus(skill, com.iflytek.skillhub.domain.skill.SkillStatus.ACTIVE));
mockMvc.perform(post("/api/web/skills/global/demo-skill/unarchive")
@ -241,7 +242,7 @@ class SkillLifecycleControllerTest {
given(namespaceRepository.findBySlug("global")).willReturn(java.util.Optional.of(namespace));
given(skillSlugResolutionService.resolve(1L, "demo-skill", "usr_1", SkillSlugResolutionService.Preference.CURRENT_USER))
.willReturn(skill);
given(skillGovernanceService.archiveSkill(eq(1L), eq("usr_1"), anyMap(), nullable(String.class), nullable(String.class), eq("cleanup")))
given(skillGovernanceService.archiveSkill(eq(1L), eq("usr_1"), anyMap(), any(), nullable(String.class), nullable(String.class), eq("cleanup")))
.willReturn(skillWithStatus(skill, com.iflytek.skillhub.domain.skill.SkillStatus.ARCHIVED));
mockMvc.perform(post("/api/web/skills/@global/demo-skill/archive")

View file

@ -1,6 +1,7 @@
package com.iflytek.skillhub.service;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.nullable;
@ -59,7 +60,7 @@ class SkillLifecycleAppServiceTest {
when(namespaceRepository.findBySlug("global")).thenReturn(Optional.of(namespace));
when(skillSlugResolutionService.resolve(7L, "demo-skill", "owner-1", SkillSlugResolutionService.Preference.CURRENT_USER))
.thenReturn(skill);
when(skillGovernanceService.archiveSkill(eq(11L), eq("owner-1"), anyMap(), nullable(String.class), nullable(String.class), eq("cleanup")))
when(skillGovernanceService.archiveSkill(eq(11L), eq("owner-1"), anyMap(), any(), nullable(String.class), nullable(String.class), eq("cleanup")))
.thenReturn(skill);
var response = service.archiveSkill(
@ -68,12 +69,13 @@ class SkillLifecycleAppServiceTest {
new AdminSkillActionRequest("cleanup"),
"owner-1",
Map.of(7L, NamespaceRole.OWNER),
null,
new AuditRequestContext("127.0.0.1", "JUnit")
);
assertThat(response.skillId()).isEqualTo(11L);
assertThat(response.action()).isEqualTo("ARCHIVE");
assertThat(response.status()).isEqualTo("ARCHIVED");
verify(skillGovernanceService).archiveSkill(11L, "owner-1", Map.of(7L, NamespaceRole.OWNER), "127.0.0.1", "JUnit", "cleanup");
verify(skillGovernanceService).archiveSkill(11L, "owner-1", Map.of(7L, NamespaceRole.OWNER), null, "127.0.0.1", "JUnit", "cleanup");
}
}

View file

@ -134,7 +134,7 @@ class SkillReportServiceTest {
);
assertThat(saved.getStatus()).isEqualTo(SkillReportStatus.RESOLVED);
verify(skillGovernanceService).hideSkill(10L, "admin", java.util.Map.of(), "127.0.0.1", "JUnit", "handled");
verify(skillGovernanceService).hideSkillAsAdmin(10L, "admin", "127.0.0.1", "JUnit", "handled");
verify(governanceNotificationService).notifyUser(
eq("user-1"),
eq("REPORT"),

View file

@ -92,7 +92,7 @@ class SkillGovernanceServiceTest {
given(skillRepository.findById(10L)).willReturn(Optional.of(skill));
given(skillRepository.save(skill)).willReturn(skill);
Skill result = service.hideSkill(10L, "admin", java.util.Map.of(), "127.0.0.1", "JUnit", "policy");
Skill result = service.hideSkill(10L, "admin", java.util.Map.of(), null, "127.0.0.1", "JUnit", "policy");
assertThat(result.isHidden()).isTrue();
assertThat(result.getHiddenBy()).isEqualTo("admin");
@ -107,7 +107,7 @@ class SkillGovernanceServiceTest {
given(skillRepository.findById(10L)).willReturn(Optional.of(skill));
given(skillRepository.save(skill)).willReturn(skill);
Skill result = service.archiveSkill(10L, "owner", Map.of(), "127.0.0.1", "JUnit", "cleanup");
Skill result = service.archiveSkill(10L, "owner", Map.of(), null, "127.0.0.1", "JUnit", "cleanup");
assertThat(result.getStatus()).isEqualTo(SkillStatus.ARCHIVED);
verify(auditLogService).record("owner", "ARCHIVE_SKILL", "SKILL", 10L, null, "127.0.0.1", "JUnit", "{\"reason\":\"cleanup\"}");
@ -122,7 +122,7 @@ class SkillGovernanceServiceTest {
given(skillRepository.findById(10L)).willReturn(Optional.of(skill));
given(skillRepository.save(skill)).willReturn(skill);
Skill result = service.unarchiveSkill(10L, "owner", Map.of(), "127.0.0.1", "JUnit");
Skill result = service.unarchiveSkill(10L, "owner", Map.of(), null, "127.0.0.1", "JUnit");
assertThat(result.getStatus()).isEqualTo(SkillStatus.ACTIVE);
verify(auditLogService).record("owner", "UNARCHIVE_SKILL", "SKILL", 10L, null, "127.0.0.1", "JUnit", null);
@ -136,7 +136,7 @@ class SkillGovernanceServiceTest {
given(skillRepository.findById(10L)).willReturn(Optional.of(skill));
assertThrows(DomainForbiddenException.class,
() -> service.archiveSkill(10L, "other", Map.of(1L, NamespaceRole.MEMBER), "127.0.0.1", "JUnit", null));
() -> service.archiveSkill(10L, "other", Map.of(1L, NamespaceRole.MEMBER), null, "127.0.0.1", "JUnit", null));
}
@Test
@ -216,7 +216,7 @@ class SkillGovernanceServiceTest {
SkillFile icon = new SkillFile(version.getId(), "icon.png", 20L, "image/png", "sha2", "skills/demo/icon");
given(skillFileRepository.findByVersionId(version.getId())).willReturn(java.util.List.of(readme, icon));
service.deleteVersion(skill, version, "owner", Map.of(), "127.0.0.1", "JUnit", "test-ns");
service.deleteVersion(skill, version, "owner", Map.of(), null, "127.0.0.1", "JUnit", "test-ns");
verify(objectStorageService).deleteObjects(argThat(keys ->
keys.size() == 3
@ -246,7 +246,7 @@ class SkillGovernanceServiceTest {
TransactionSynchronizationManager.initSynchronization();
service.deleteVersion(skill, version, "owner", Map.of(), "127.0.0.1", "JUnit", "test-ns");
service.deleteVersion(skill, version, "owner", Map.of(), null, "127.0.0.1", "JUnit", "test-ns");
verify(objectStorageService, never()).deleteObjects(argThat(keys -> !keys.isEmpty()));
@ -279,7 +279,7 @@ class SkillGovernanceServiceTest {
TransactionSynchronizationManager.initSynchronization();
service.deleteVersion(skill, version, "owner", Map.of(), "127.0.0.1", "JUnit", "test-ns");
service.deleteVersion(skill, version, "owner", Map.of(), null, "127.0.0.1", "JUnit", "test-ns");
for (TransactionSynchronization synchronization : TransactionSynchronizationManager.getSynchronizations()) {
synchronization.afterCommit();
@ -307,7 +307,7 @@ class SkillGovernanceServiceTest {
version.setStatus(SkillVersionStatus.PUBLISHED);
assertThrows(DomainBadRequestException.class,
() -> service.deleteVersion(skill, version, "owner", Map.of(), "127.0.0.1", "JUnit", "test-ns"));
() -> service.deleteVersion(skill, version, "owner", Map.of(), null, "127.0.0.1", "JUnit", "test-ns"));
verify(skillVersionRepository, never()).delete(any());
verify(objectStorageService, never()).deleteObject(any());
@ -323,7 +323,7 @@ class SkillGovernanceServiceTest {
given(skillVersionRepository.findBySkillId(1L)).willReturn(java.util.List.of(version));
DomainBadRequestException ex = assertThrows(DomainBadRequestException.class,
() -> service.deleteVersion(skill, version, "owner", Map.of(), "127.0.0.1", "JUnit", "test-ns"));
() -> service.deleteVersion(skill, version, "owner", Map.of(), null, "127.0.0.1", "JUnit", "test-ns"));
assertThat(ex.messageCode()).isEqualTo("error.skill.version.delete.lastVersion");
verify(skillVersionRepository, never()).delete(any());
@ -351,7 +351,7 @@ class SkillGovernanceServiceTest {
given(skillRepository.save(skill)).willReturn(skill);
given(skillFileRepository.findByVersionId(2L)).willReturn(java.util.List.of());
service.deleteVersion(skill, draftVersion, "owner", Map.of(), "127.0.0.1", "JUnit", "test-ns");
service.deleteVersion(skill, draftVersion, "owner", Map.of(), null, "127.0.0.1", "JUnit", "test-ns");
assertThat(skill.getLatestVersionId()).isEqualTo(3L);
verify(skillRepository).save(skill);