test(projects): repair accessibility MVC slice
This commit is contained in:
@@ -46,3 +46,7 @@ No browser loop or Impeccable detector is run on this branch; the root owner per
|
|||||||
After merging exact reviewed `main` `32c8a2d315d2175760c5d4792988cd0aa5ab6dd0`, `npm ci`, the 1/1 UI test, frontend build, compile, Project-scoped Javadoc/doclint, and diff check all succeeded. The first affected Java command added the updated shared `UiContractWebTest` and passed 45/45 tests with no failures, errors, or skips.
|
After merging exact reviewed `main` `32c8a2d315d2175760c5d4792988cd0aa5ab6dd0`, `npm ci`, the 1/1 UI test, frontend build, compile, Project-scoped Javadoc/doclint, and diff check all succeeded. The first affected Java command added the updated shared `UiContractWebTest` and passed 45/45 tests with no failures, errors, or skips.
|
||||||
|
|
||||||
The bounded post-review affected command reran `ProjectControllerTest,ProjectEntityTest,ProjectPersistenceStructureTest,ProjectServiceIntegrationTest,ProjectTaskMutationContextTest,LayerStructureTest,UiContractWebTest` and passed 47/47 with no failures, errors, or skips, including 9/9 Project service tests against PostgreSQL 18.4. The UI test remained 1/1; frontend build, compile, Project-scoped Javadoc/doclint, and `git diff --check` also succeeded.
|
The bounded post-review affected command reran `ProjectControllerTest,ProjectEntityTest,ProjectPersistenceStructureTest,ProjectServiceIntegrationTest,ProjectTaskMutationContextTest,LayerStructureTest,UiContractWebTest` and passed 47/47 with no failures, errors, or skips, including 9/9 Project service tests against PostgreSQL 18.4. The UI test remained 1/1; frontend build, compile, Project-scoped Javadoc/doclint, and `git diff --check` also succeeded.
|
||||||
|
|
||||||
|
The root-owned final full suite then exposed a branch-induced MVC-slice fixture RED: 213 tests ran with 0 failures and 3 errors, all `ProjectTaskFormAccessibilityWebTest` context errors because the slice did not provide the new ProjectController AccountService dependency. A focused reproduction ran the class at 3 tests, 0 failures, 3 errors and reported the same missing AccountService constructor dependency.
|
||||||
|
|
||||||
|
The smallest test-only correction supplies the controller's AccountService and Clock dependencies and the existing ProjectQueryService mock's authenticated Mentor response. The intermediate focused runs exposed each dependency in order; no production code changed. Final focused GREEN: `env JAVA_HOME=/opt/homebrew/opt/openjdk@25 PATH=/opt/homebrew/opt/openjdk@25/bin:$PATH ./mvnw '-Dtest=ProjectTaskFormAccessibilityWebTest' test` passed 3/3 with no failures, errors, or skips. The root owner retains the broader rerun.
|
||||||
|
|||||||
+20
@@ -8,14 +8,20 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
|
|||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||||
|
|
||||||
|
import com.lab.labtimesheet.feature.account.service.AccountService;
|
||||||
import com.lab.labtimesheet.feature.integration.service.SmtpConfigurationService;
|
import com.lab.labtimesheet.feature.integration.service.SmtpConfigurationService;
|
||||||
import com.lab.labtimesheet.feature.project.controller.ProjectController;
|
import com.lab.labtimesheet.feature.project.controller.ProjectController;
|
||||||
|
import com.lab.labtimesheet.feature.project.model.dto.ProjectActorView;
|
||||||
import com.lab.labtimesheet.feature.project.service.ProjectQueryService;
|
import com.lab.labtimesheet.feature.project.service.ProjectQueryService;
|
||||||
import com.lab.labtimesheet.feature.project.service.ProjectService;
|
import com.lab.labtimesheet.feature.project.service.ProjectService;
|
||||||
import com.lab.labtimesheet.feature.task.controller.TaskController;
|
import com.lab.labtimesheet.feature.task.controller.TaskController;
|
||||||
import com.lab.labtimesheet.feature.task.model.dto.TaskAssigneeChoice;
|
import com.lab.labtimesheet.feature.task.model.dto.TaskAssigneeChoice;
|
||||||
import com.lab.labtimesheet.feature.task.service.TaskService;
|
import com.lab.labtimesheet.feature.task.service.TaskService;
|
||||||
|
import java.time.Clock;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.webmvc.test.autoconfigure.WebMvcTest;
|
import org.springframework.boot.webmvc.test.autoconfigure.WebMvcTest;
|
||||||
@@ -34,12 +40,26 @@ class ProjectTaskFormAccessibilityWebTest {
|
|||||||
@MockitoBean
|
@MockitoBean
|
||||||
private ProjectService projects;
|
private ProjectService projects;
|
||||||
|
|
||||||
|
@MockitoBean
|
||||||
|
private AccountService accounts;
|
||||||
|
|
||||||
|
@MockitoBean
|
||||||
|
private Clock clock;
|
||||||
|
|
||||||
@MockitoBean
|
@MockitoBean
|
||||||
private TaskService tasks;
|
private TaskService tasks;
|
||||||
|
|
||||||
@MockitoBean
|
@MockitoBean
|
||||||
private SmtpConfigurationService smtpConfiguration;
|
private SmtpConfigurationService smtpConfiguration;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
void mentorActor() {
|
||||||
|
given(projectQueries.authenticatedActor("mentor@example.test"))
|
||||||
|
.willReturn(new ProjectActorView(10L, "MENTOR"));
|
||||||
|
given(clock.instant()).willReturn(Instant.parse("2026-08-15T01:00:00Z"));
|
||||||
|
given(clock.getZone()).willReturn(ZoneId.of("Asia/Ho_Chi_Minh"));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void projectFieldErrorsHaveStableIdsAndInputAssociations() throws Exception {
|
void projectFieldErrorsHaveStableIdsAndInputAssociations() throws Exception {
|
||||||
mvc.perform(post("/projects")
|
mvc.perform(post("/projects")
|
||||||
|
|||||||
Reference in New Issue
Block a user