UI page specs per page (v1.38.14) #142

Merged
ai-reviewer merged 7 commits from mihoe/ui-controller-tests-per-page into main 2026-10-10 13:37:22 +02:00
Collaborator

UiControllerRestTest (52 tests) is split into one spec per page or page family on a shared abstract base, so PIT runs only the page specs a mutated line reaches. See docs/prs/2026-10-10-PR#142-ui-page-specs-per-page.md.

🤖 Generated with Claude Code

UiControllerRestTest (52 tests) is split into one spec per page or page family on a shared abstract base, so PIT runs only the page specs a mutated line reaches. See docs/prs/2026-10-10-PR#142-ui-page-specs-per-page.md. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-code changed title from WIP: UI page specs per page (v1.38.9) to WIP: UI page specs per page (v1.38.10) 2026-10-10 11:54:29 +02:00
mi force-pushed mihoe/ui-controller-tests-per-page from f1a4f2197e to add658d862 2026-10-10 12:06:28 +02:00 Compare
claude-code marked the pull request as ready for review 2026-10-10 12:10:48 +02:00
Collaborator
🟡 werkrevisor YELLOW for add658d, superseded by the result for f6441c0

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted
  • YELLOW PR too large for an AI-only approval: 2578 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars)
  • hint 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html
  • hint 2 finding(s) of low severity or rated minor by Jev: src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:25-32, src/test/kotlin/de/hoennig/werkator/server/UiSystemPageRestTest.kt:29-30

Findings

  1. Unused imports at src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:25-32, severity unknown, counted as medium, hint, as a line comment

  2. Duplicate stub setup at src/test/kotlin/de/hoennig/werkator/server/UiSystemPageRestTest.kt:29-30, severity unknown, counted as medium, hint, as a line comment

Classifier

4 of 4 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 51030, calls 1, tokens in 49153 / out 19971 (reasoning included in out), duration 202.3 s, cost 0.0387 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, finding judge `jev-1.13.0` calls 2, tokens in 4800, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29685 / out 139, cost 0.0038 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21620, cost 0.0009 USD, phases: path_judge 0.8 s, classifier 0.2 s, context 5.7 s, model_review 194.5 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 6f86b96).
Reviewed head `add658d8621e0e68cccddf507bac280a40b1d990` against base `6f86b96850a6cf12202b5aa05108848ddbf9301d`, werkrevisor 0.31.3.
<!-- werkrevisor:add658d8621e0e68cccddf507bac280a40b1d990 --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>add658d</code>, superseded by <a href="http://git.javagil.de/mi/werkator/pulls/142#issuecomment-3058">the result for <code>f6441c0</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted - **YELLOW** PR too large for an AI-only approval: 2578 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars) - **hint** 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01) - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html - **hint** 2 finding(s) of low severity or rated minor by Jev: src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:25-32, src/test/kotlin/de/hoennig/werkator/server/UiSystemPageRestTest.kt:29-30 ### Findings 1. **Unused imports** at `src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:25-32`, severity unknown, counted as medium, hint, as a line comment 2. **Duplicate stub setup** at `src/test/kotlin/de/hoennig/werkator/server/UiSystemPageRestTest.kt:29-30`, severity unknown, counted as medium, hint, as a line comment ### Classifier 4 of 4 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 51030, calls 1, tokens in 49153 / out 19971 (reasoning included in out), duration 202.3 s, cost 0.0387 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, finding judge `jev-1.13.0` calls 2, tokens in 4800, cost 0.0002 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29685 / out 139, cost 0.0038 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21620, cost 0.0009 USD, phases: path_judge 0.8 s, classifier 0.2 s, context 5.7 s, model_review 194.5 s, finding_judge 0.3 s, config: defaults + host + repository (.werkrevisor.toml at main 6f86b96).<br> Reviewed head `add658d8621e0e68cccddf507bac280a40b1d990` against base `6f86b96850a6cf12202b5aa05108848ddbf9301d`, werkrevisor 0.31.3. </sub> </details>
ai-reviewer left a comment
Collaborator

werkrevisor: YELLOW / HUMAN_REVIEW for add658d8621e0e68cccddf507bac280a40b1d990.
The result comment of werkrevisor holds the details.

werkrevisor: YELLOW / HUMAN_REVIEW for `add658d8621e0e68cccddf507bac280a40b1d990`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:add658d8621e0e68cccddf507bac280a40b1d990 -->
@@ -0,0 +22,4 @@
import io.mockk.clearMocks
import io.mockk.every
import jakarta.servlet.http.HttpServletRequest
import org.hamcrest.Matchers.not
Collaborator

Unused imports, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.85, severity 0.9 of 3

UiPageRestTest.kt imports org.hamcrest.Matchers.not, org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get and org.springframework.test.web.servlet.result.MockMvcResultMatchers.status but never uses them in the body (the file only references mockMvc and helpers, never not(, MockMvcRequestBuilders.get(, or MockMvcResultMatchers.status(…). Same kind of leftover: org.hamcrest.Matchers.not is imported but unused in UiHomeRestTest.kt and in UiSystemPageRestTest.kt. Ktlint's unused-import rule will normally fail the build, so these would block the PR.

**Unused imports**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.85, severity 0.9 of 3 `UiPageRestTest.kt` imports `org.hamcrest.Matchers.not`, `org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get` and `org.springframework.test.web.servlet.result.MockMvcResultMatchers.status` but never uses them in the body (the file only references `mockMvc` and helpers, never `not(`, `MockMvcRequestBuilders.get(`, or `MockMvcResultMatchers.status(…`). Same kind of leftover: `org.hamcrest.Matchers.not` is imported but unused in `UiHomeRestTest.kt` and in `UiSystemPageRestTest.kt`. Ktlint's unused-import rule will normally fail the build, so these would block the PR.
Author
Collaborator

Fixed in f6441c0: the base no longer imports not, get or status, and UiSystemPageRestTest no longer imports not.

Fixed in f6441c0: the base no longer imports `not`, `get` or `status`, and `UiSystemPageRestTest` no longer imports `not`.
claude-code marked this conversation as resolved
@@ -0,0 +26,4 @@
load15 = 0.3,
)
every { buildExecutor.currentBuilds() } returns emptyList()
every { metricsCollector.history() } returns MetricsHistory()
Collaborator

Duplicate stub setup, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.46, severity 0.8 of 3

Two system-page tests register every { metricsCollector.history() } returns MetricsHistory() twice on consecutive lines (and once in UiLayoutRestTest.kt's system test). Setting the same every { ... } returns ... twice for the same matcher is a copy-paste artifact from the original spec; MockK is forgiving here, but it is noise the formatter/lint may flag and it should be cleaned up to one line.

**Duplicate stub setup**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.46, severity 0.8 of 3 Two system-page tests register `every { metricsCollector.history() } returns MetricsHistory()` twice on consecutive lines (and once in `UiLayoutRestTest.kt`'s system test). Setting the same `every { ... } returns ...` twice for the same matcher is a copy-paste artifact from the original spec; MockK is forgiving here, but it is noise the formatter/lint may flag and it should be cleaned up to one line.
Author
Collaborator

Fixed in f6441c0: the doubled metricsCollector.history() stub, moved over from UiControllerRestTest, stands once in both system-page tests.

Fixed in f6441c0: the doubled `metricsCollector.history()` stub, moved over from `UiControllerRestTest`, stands once in both system-page tests.
claude-code marked this conversation as resolved
ai-reviewer scheduled this pull request to auto merge when all checks succeed 2026-10-10 12:14:23 +02:00
ai-reviewer requested review from mi 2026-10-10 12:14:23 +02:00
Collaborator
🟡 werkrevisor YELLOW for f6441c0, superseded by the result for f3f5904

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted
  • YELLOW PR too large for an AI-only approval: 2572 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars)
  • hint 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html
  • hint 1 finding(s) of low severity or rated minor by Jev: src/test/kotlin/de/hoennig/werkator/server/UiLayoutRestTest.kt:166-167

Findings

  1. Duplicate stub setup at src/test/kotlin/de/hoennig/werkator/server/UiLayoutRestTest.kt:166-167, severity unknown, counted as medium, hint, as a line comment

Classifier

4 of 4 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 50868, calls 1, tokens in 48998 / out 19040 (reasoning included in out), duration 184.6 s, cost 0.0375 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2258, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29685 / out 131, cost 0.0004 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21529, cost 0.0009 USD, phases: path_judge 0.5 s, classifier 0.2 s, context 4.0 s, model_review 178.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 6f86b96).
Reviewed head `f6441c036c305a2e26e087e10704dff89d78ceec` against base `6f86b96850a6cf12202b5aa05108848ddbf9301d`, werkrevisor 0.31.3.
<!-- werkrevisor:f6441c036c305a2e26e087e10704dff89d78ceec --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>f6441c0</code>, superseded by <a href="http://git.javagil.de/mi/werkator/pulls/142#issuecomment-3069">the result for <code>f3f5904</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted - **YELLOW** PR too large for an AI-only approval: 2572 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars) - **hint** 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01) - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html - **hint** 1 finding(s) of low severity or rated minor by Jev: src/test/kotlin/de/hoennig/werkator/server/UiLayoutRestTest.kt:166-167 ### Findings 1. **Duplicate stub setup** at `src/test/kotlin/de/hoennig/werkator/server/UiLayoutRestTest.kt:166-167`, severity unknown, counted as medium, hint, as a line comment ### Classifier 4 of 4 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 50868, calls 1, tokens in 48998 / out 19040 (reasoning included in out), duration 184.6 s, cost 0.0375 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2258, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29685 / out 131, cost 0.0004 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21529, cost 0.0009 USD, phases: path_judge 0.5 s, classifier 0.2 s, context 4.0 s, model_review 178.9 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 6f86b96).<br> Reviewed head `f6441c036c305a2e26e087e10704dff89d78ceec` against base `6f86b96850a6cf12202b5aa05108848ddbf9301d`, werkrevisor 0.31.3. </sub> </details>
ai-reviewer left a comment
Collaborator

werkrevisor: YELLOW / HUMAN_REVIEW for f6441c036c305a2e26e087e10704dff89d78ceec.
The result comment of werkrevisor holds the details.

werkrevisor: YELLOW / HUMAN_REVIEW for `f6441c036c305a2e26e087e10704dff89d78ceec`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:f6441c036c305a2e26e087e10704dff89d78ceec -->
@@ -0,0 +163,4 @@
test("the system page is an instance page: its own title, no repository crumb (Scenario#35.01)") {
every { metricsCollector.snapshot() } returns emptySystemMetrics
every { buildExecutor.currentBuilds() } returns emptyList()
every { metricsCollector.history() } returns MetricsHistory()
Collaborator

Duplicate stub setup, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.65, severity 0.8 of 3

In the test "the system page is an instance page: its own title, no repository crumb (Scenario#35.01)", the line every { metricsCollector.history() } returns MetricsHistory() is set on two consecutive lines (lines 166-167). One is redundant; the test still passes because both stubs are identical. Likely a copy-paste leftover from splitting the former spec.

**Duplicate stub setup**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.65, severity 0.8 of 3 In the test "the system page is an instance page: its own title, no repository crumb (Scenario#35.01)", the line `every { metricsCollector.history() } returns MetricsHistory()` is set on two consecutive lines (lines 166-167). One is redundant; the test still passes because both stubs are identical. Likely a copy-paste leftover from splitting the former spec.
Author
Collaborator

Fixed in f3f5904: the doubled metricsCollector.history() stub, moved over from UiControllerRestTest, stands once. No other spec of this PR stubs a line twice in a row.

Fixed in f3f5904: the doubled `metricsCollector.history()` stub, moved over from `UiControllerRestTest`, stands once. No other spec of this PR stubs a line twice in a row.
claude-code marked this conversation as resolved
Collaborator
🟡 werkrevisor YELLOW for f3f5904, superseded by the result for d75702a

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted
  • YELLOW PR too large for an AI-only approval: 2571 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars)
  • hint 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html
  • hint 1 finding(s) of low severity or rated minor by Jev: src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:42
  • hint model recommends merge with caution

Findings

  1. Naming convention at src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:42, severity unknown, counted as medium, hint, as a line comment

Classifier

4 of 4 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 51162, calls 1, tokens in 49277 / out 10996 (reasoning included in out), duration 117.5 s, cost 0.0279 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2188, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29685 / out 151, cost 0.0004 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21511, cost 0.0009 USD, phases: path_judge 0.5 s, classifier 0.3 s, context 4.3 s, model_review 111.5 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 6f86b96).
Reviewed head `f3f5904808518051dfb5f940fc88ec20d685932d` against base `6f86b96850a6cf12202b5aa05108848ddbf9301d`, werkrevisor 0.31.3.
<!-- werkrevisor:f3f5904808518051dfb5f940fc88ec20d685932d --> <!-- werkrevisor-verdict:YELLOW --> <!-- werkrevisor-folded --> <details><summary>🟡 werkrevisor YELLOW for <code>f3f5904</code>, superseded by <a href="http://git.javagil.de/mi/werkator/pulls/142#issuecomment-3120">the result for <code>d75702a</code></a></summary> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted - **YELLOW** PR too large for an AI-only approval: 2571 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars) - **hint** 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01) - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html - **hint** 1 finding(s) of low severity or rated minor by Jev: src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:42 - **hint** model recommends merge with caution ### Findings 1. **Naming convention** at `src/test/kotlin/de/hoennig/werkator/server/UiPageRestTest.kt:42`, severity unknown, counted as medium, hint, as a line comment ### Classifier 4 of 4 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 51162, calls 1, tokens in 49277 / out 10996 (reasoning included in out), duration 117.5 s, cost 0.0279 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, finding judge `jev-1.13.0` calls 1, tokens in 2188, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29685 / out 151, cost 0.0004 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21511, cost 0.0009 USD, phases: path_judge 0.5 s, classifier 0.3 s, context 4.3 s, model_review 111.5 s, finding_judge 0.2 s, config: defaults + host + repository (.werkrevisor.toml at main 6f86b96).<br> Reviewed head `f3f5904808518051dfb5f940fc88ec20d685932d` against base `6f86b96850a6cf12202b5aa05108848ddbf9301d`, werkrevisor 0.31.3. </sub> </details>
ai-reviewer left a comment
Collaborator

werkrevisor: YELLOW / HUMAN_REVIEW for f3f5904808518051dfb5f940fc88ec20d685932d.
The result comment of werkrevisor holds the details.

werkrevisor: YELLOW / HUMAN_REVIEW for `f3f5904808518051dfb5f940fc88ec20d685932d`. The result comment of werkrevisor holds the details. <!-- werkrevisor-review:f3f5904808518051dfb5f940fc88ec20d685932d -->
@@ -0,0 +39,4 @@
*/
@WebMvcTest(UiController::class, properties = ["spring.main.web-application-type=servlet"])
@Import(RepoLinks::class, RepoRouting::class)
abstract class UiPageRestTest : FunSpec() {
Collaborator

Naming convention, severity unknown, counted as medium (werkrevisor)

hint; Jev: real 0.58, severity 1.6 of 3

The abstract base class is named UiPageRestTest, ending in Test rather than RestTest. AGENTS.md states every spec name ends in what it needs (*RestTest for a @WebMvcTest slice), and TestNamingConventionUnitTest enforces it. The base itself carries the @WebMvcTest annotation and is the shared context for all five subclasses. If the convention test inspects every FunSpec subclass regardless of abstract, this PR will fail the build. The author should rename to either match the *RestTest suffix the convention demands, or to something that makes the base explicitly a fixture (e.g., an AbstractUiPageRestTest or UiPageRestFixture) that the convention test is known to skip.

**Naming convention**, severity unknown, counted as medium (werkrevisor) hint; Jev: real 0.58, severity 1.6 of 3 The abstract base class is named `UiPageRestTest`, ending in `Test` rather than `RestTest`. AGENTS.md states every spec name ends in what it needs (`*RestTest` for a `@WebMvcTest` slice), and `TestNamingConventionUnitTest` enforces it. The base itself carries the `@WebMvcTest` annotation and is the shared context for all five subclasses. If the convention test inspects every `FunSpec` subclass regardless of `abstract`, this PR will fail the build. The author should rename to either match the `*RestTest` suffix the convention demands, or to something that makes the base explicitly a fixture (e.g., an `AbstractUiPageRestTest` or `UiPageRestFixture`) that the convention test is known to skip.
Author
Collaborator

No change needed: UiPageRestTest ends in RestTest (Ui·Page·RestTest), the suffix TestNamingConventionUnitTest asks for, and that test passed in this branch's build. Being abstract, Kotest and JUnit do not run the base itself; the five page specs that extend it end in RestTest as well.

No change needed: `UiPageRestTest` ends in `RestTest` (Ui·Page·RestTest), the suffix `TestNamingConventionUnitTest` asks for, and that test passed in this branch's build. Being abstract, Kotest and JUnit do not run the base itself; the five page specs that extend it end in `RestTest` as well.
claude-code marked this conversation as resolved
mi approved these changes 2026-10-10 13:30:13 +02:00
Dismissed
claude-code changed title from UI page specs per page (v1.38.10) to UI page specs per page (v1.38.14) 2026-10-10 13:32:19 +02:00
mi added 7 commits 2026-10-10 13:32:19 +02:00
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v1.38.14 for this PR, after v1.38.13 on main
ai-review/assessment human review required; a human approval unlocks the merge; review requested from mi; merge already scheduled
ai-review/gate build succeeded after 01:42
werkator build succeeded after 03:14
d75702a914
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi force-pushed mihoe/ui-controller-tests-per-page from f3f5904808 to d75702a914 2026-10-10 13:32:19 +02:00 Compare
mi dismissed mi's review 2026-10-10 13:32:19 +02:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Collaborator

🟡 werkrevisor: YELLOW / HUMAN_REVIEW

Change kind: mixed.

Reasons

  • YELLOW tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted
  • YELLOW PR too large for an AI-only approval: 2571 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself
  • YELLOW changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars)
  • hint 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev
  • hint 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01)
  • hint 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html

Classifier

4 of 4 units passed all questions (1 PR document(s)).

Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 51747, calls 1, tokens in 49831 / out 15039 (reasoning included in out), duration 99.5 s, cost 0.0330 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29870 / out 199, cost 0.0038 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21513, cost 0.0009 USD, phases: path_judge 0.5 s, classifier 0.3 s, context 4.1 s, model_review 94.5 s, config: defaults + host + repository (.werkrevisor.toml at main da0e828).
Reviewed head `d75702a914c3eb15477db12ce3e4e520260d9685` against base `da0e82889e784a772fda358c78363b2e63f81ec1`, werkrevisor 0.31.6.
<!-- werkrevisor:d75702a914c3eb15477db12ce3e4e520260d9685 --> <!-- werkrevisor-verdict:YELLOW --> ## 🟡 werkrevisor: YELLOW / HUMAN_REVIEW Change kind: `mixed`. ### Reasons - **YELLOW** tests lost or disabled: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt deleted - **YELLOW** PR too large for an AI-only approval: 2571 changed lines (docs and mechanical files not counted) exceed [size] max_changed_lines = 800; please review it yourself - **YELLOW** changed files not judged by Jev: src/test/kotlin/de/hoennig/werkator/server/UiControllerRestTest.kt (larger than [classifier] max_state_chars) - **hint** 7 changed file(s) that neither weaken the checks, touch security nor show a risk category of jvm-spring-backend according to Jev - **hint** 1 build change(s) of low risk according to Jev: build.gradle.kts (weakens checks 0.03, risk 0.00, security 0.01) - **hint** 1 changed file was given to the AI as excerpt of the selected lines and 5 lines around each changed line, not in full (each larger than [review] max_full_file_chars = 80000): src/main/resources/templates/releases.html ### Classifier 4 of 4 units passed all questions (1 PR document(s)). <sub> Usage: model `openrouter/minimax/minimax-m3`, LLM done, tokens counted before the call 51747, calls 1, tokens in 49831 / out 15039 (reasoning included in out), duration 99.5 s, cost 0.0330 USD (reported), classifier `jev-1.13.0` calls 4, tokens in 3114, cost 0.0001 USD, excerpt selection `openrouter/openai/gpt-6-luna` calls 1, tokens in 29870 / out 199, cost 0.0038 USD (reported), build file judge `jev-1.13.0` calls 8, tokens in 21513, cost 0.0009 USD, phases: path_judge 0.5 s, classifier 0.3 s, context 4.1 s, model_review 94.5 s, config: defaults + host + repository (.werkrevisor.toml at main da0e828).<br> Reviewed head `d75702a914c3eb15477db12ce3e4e520260d9685` against base `da0e82889e784a772fda358c78363b2e63f81ec1`, werkrevisor 0.31.6. </sub>
ai-reviewer requested review from mi 2026-10-10 13:34:04 +02:00
mi approved these changes 2026-10-10 13:37:21 +02:00
ai-reviewer merged commit d62b46a681 into main 2026-10-10 13:37:22 +02:00
ai-reviewer deleted branch mihoe/ui-controller-tests-per-page 2026-10-10 13:37:22 +02:00
Sign in to join this conversation.
No Reviewers
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mi/werkator#142