Auto reviews are disabled on base/target branches other than the default branch.
Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Free
Run ID: 8ef78efc-864e-4dae-93c8-1b41a52a6284
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
🔍 Trigger review
Tip
💬 Introducing Slack Agent: The best way for teams to turn conversations into code.
Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
Generate code and open pull requests
Plan features and break down work
Investigate incidents and troubleshoot customer tickets together
Automate recurring tasks and respond to alerts with triggers
Summarize progress and report instantly
Built for teams:
Shared memory across your entire org—no repeating context
Per-thread sandboxes to safely plan and execute work
Governance built-in—scoped access, auditability, and budget controls
One agent for your entire SDLC. Right inside Slack.
Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.
Comment @coderabbitai help to get the list of available commands and usage tips.
<!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: skip review by coderabbit.ai -->
> [!IMPORTANT]
> ## Review skipped
>
> Auto reviews are disabled on base/target branches other than the default branch.
>
>
>
> Please check the settings in the CodeRabbit UI or the `.coderabbit.yaml` file in this repository. To trigger a single review, invoke the `@coderabbitai review` command.
>
> <details>
> <summary>⚙️ Run configuration</summary>
>
> **Configuration used**: Organization UI
>
> **Review profile**: ASSERTIVE
>
> **Plan**: Free
>
> **Run ID**: `8ef78efc-864e-4dae-93c8-1b41a52a6284`
>
> </details>
>
> You can disable this status message by setting the `reviews.review_status` to `false` in the CodeRabbit configuration file.
>
> Use the checkbox below for a quick retry:
> - [ ] <!-- {"checkboxId": "e9bb8d72-00e8-4f67-9cb2-caf3b22574fe"} --> 🔍 Trigger review
<!-- end of auto-generated comment: skip review by coderabbit.ai -->
<!-- announcements_start -->
> [!TIP]
> <details>
> <summary>💬 Introducing Slack Agent: The best way for teams to turn conversations into code.</summary>
>
> [Slack Agent](https://www.coderabbit.ai/agent) is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.
>
> - Generate code and open pull requests
> - Plan features and break down work
> - Investigate incidents and troubleshoot customer tickets together
> - Automate recurring tasks and respond to alerts with triggers
> - Summarize progress and report instantly
>
> Built for teams:
>
> - **Shared memory** across your entire org—no repeating context
> - **Per-thread sandboxes** to safely plan and execute work
> - **Governance built-in**—scoped access, auditability, and budget controls
>
> One agent for your entire SDLC. Right inside Slack.
>
> 👉 [Get started](https://agent.coderabbit.ai/)
>
> </details>
<!-- announcements_end -->
<!-- tips_start -->
---
> [!NOTE]
> <details>
> <summary>🎁 Summarized by CodeRabbit Free</summary>
>
> Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting <https://app.coderabbit.ai/login>.
>
> </details>
<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>
<!-- tips_end -->
copilot-pull-request-reviewer[bot]
(Migrated from github.com)
reviewed 2026-04-21 18:32:39 +00:00
copilot-pull-request-reviewer[bot]
(Migrated from github.com)
left a comment
Copy Link
Copy Source
Pull request overview
Adds Spring Boot integration tests for key REST controllers and extends the film API to support title-based lookup and listing films not currently in a user’s library.
Changes:
Added @SpringBootTest + MockMvc integration tests for Users, Films, and Film Library endpoints.
Extended Film persistence/service layer with findByTitle and exposed /api/films/search.
Added /api/users/{userId}/library/available-films to return films excluding the one currently in the user’s library.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 19 comments.
## Pull request overview
Adds Spring Boot integration tests for key REST controllers and extends the film API to support title-based lookup and listing films not currently in a user’s library.
**Changes:**
- Added `@SpringBootTest` + `MockMvc` integration tests for Users, Films, and Film Library endpoints.
- Extended Film persistence/service layer with `findByTitle` and exposed `/api/films/search`.
- Added `/api/users/{userId}/library/available-films` to return films excluding the one currently in the user’s library.
### Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 19 comments.
<details>
<summary>Show a summary per file</summary>
| File | Description |
| ---- | ----------- |
| src/test/kotlin/com/project/movienight/controllers/UserControllerTest.kt | Adds controller integration tests for create/edit/delete user flows. |
| src/test/kotlin/com/project/movienight/controllers/FilmControllerTest.kt | Adds controller integration tests for create/edit/search/delete film flows. |
| src/test/kotlin/com/project/movienight/controllers/FilmLibraryControllerTest.kt | Adds controller integration tests for adding/removing films in a user library. |
| src/main/kotlin/com/project/movienight/application/services/FilmService.kt | Exposes read methods (`findByTitle`, `findAll`) used by new controller endpoints. |
| src/main/kotlin/com/project/movienight/application/ports/output/FilmRepositoryPort.kt | Adds `findByTitle` to the repository port. |
| src/main/kotlin/com/project/movienight/adapters/web/FilmController.kt | Adds `/search` endpoint backed by `FilmService.findByTitle`. |
| src/main/kotlin/com/project/movienight/adapters/web/FilmLibraryController.kt | Adds `/available-films` endpoint backed by `FilmService.findAll`. |
| src/main/kotlin/com/project/movienight/adapters/persistence/jdbc/FilmRepository.kt | Implements `findByTitle` using JDBC query. |
</details>
---
💡 <a href="/devitq/movienight-backend/new/main?filename=.github/instructions/*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
findByTitle returns the first matching row without a deterministic order, and titles aren't constrained to be unique in the schema; this can lead to unpredictable results if multiple films share a title. Consider enforcing uniqueness at the DB level or making the query deterministic (e.g., ORDER BY + LIMIT 1) and ensure formatting matches ktlint (trailing comma on the last argument in this multiline call).
val films =
jdbc.query(
"SELECT id, title, description FROM films WHERE title = ? ORDER BY id LIMIT 1",
filmRowMapper,
title,
)
`findByTitle` returns the first matching row without a deterministic order, and titles aren't constrained to be unique in the schema; this can lead to unpredictable results if multiple films share a title. Consider enforcing uniqueness at the DB level or making the query deterministic (e.g., `ORDER BY` + `LIMIT 1`) and ensure formatting matches ktlint (trailing comma on the last argument in this multiline call).
```suggestion
val films =
jdbc.query(
"SELECT id, title, description FROM films WHERE title = ? ORDER BY id LIMIT 1",
filmRowMapper,
title,
)
```
There are multiple consecutive blank lines after the package declaration here; ktlint will flag consecutive blank lines. Collapse this to a single blank line before the imports.
There are multiple consecutive blank lines after the `package` declaration here; ktlint will flag consecutive blank lines. Collapse this to a single blank line before the imports.
```suggestion
```
org.springframework.web.bind.annotation.* is a wildcard import and is redundant with the explicit annotation imports above; ktlint (enabled in this repo) will fail on wildcard/redundant imports. Replace the wildcard import with only the specific annotations you use (and remove any duplicates).
`org.springframework.web.bind.annotation.*` is a wildcard import and is redundant with the explicit annotation imports above; ktlint (enabled in this repo) will fail on wildcard/redundant imports. Replace the wildcard import with only the specific annotations you use (and remove any duplicates).
searchByTitle returns null when a film isn't found, which produces a 200 with an empty body. Other not-found scenarios in this API return 404 via EntityNotFoundException/ApiExceptionHandler; consider returning a 404 (or 204) explicitly (e.g., ResponseEntity.notFound()), to keep error semantics consistent for clients.
`searchByTitle` returns `null` when a film isn't found, which produces a 200 with an empty body. Other not-found scenarios in this API return 404 via `EntityNotFoundException`/`ApiExceptionHandler`; consider returning a 404 (or 204) explicitly (e.g., `ResponseEntity.notFound()`), to keep error semantics consistent for clients.
org.springframework.web.bind.annotation.* is a wildcard import and is redundant with the explicit annotation imports above; ktlint (enabled in this repo) will fail on wildcard/redundant imports. Replace the wildcard import with only the specific annotations you use (and remove any duplicates).
`org.springframework.web.bind.annotation.*` is a wildcard import and is redundant with the explicit annotation imports above; ktlint (enabled in this repo) will fail on wildcard/redundant imports. Replace the wildcard import with only the specific annotations you use (and remove any duplicates).
```suggestion
```
getAvailableFilms assumes the user already has a library row; if not, getFilmLibraryUseCase.getLibrary(...) will throw EntityNotFoundException and this endpoint will return 404, even though listing available films could reasonably work without an existing library. If the intended behavior is to return all films when no library exists (or after a library has been deleted), handle the not-found case explicitly (e.g., fall back to an empty library / no excluded film).
`getAvailableFilms` assumes the user already has a library row; if not, `getFilmLibraryUseCase.getLibrary(...)` will throw `EntityNotFoundException` and this endpoint will return 404, even though listing available films could reasonably work without an existing library. If the intended behavior is to return all films when no library exists (or after a library has been deleted), handle the not-found case explicitly (e.g., fall back to an empty library / no excluded film).
This new endpoint isn't covered by the existing FilmLibraryControllerTest suite. Add controller-level tests for /api/users/{userId}/library/available-films (e.g., user with a film in library vs user with none) to prevent regressions.
This new endpoint isn't covered by the existing `FilmLibraryControllerTest` suite. Add controller-level tests for `/api/users/{userId}/library/available-films` (e.g., user with a film in library vs user with none) to prevent regressions.
The getLibrary(...) call here is formatted inconsistently with the rest of the codebase (missing trailing comma in a multiline call). With ktlint experimental rules enabled, this will likely fail formatting checks; align it with existing call sites by adding the trailing comma and standard indentation.
GetFilmLibraryQuery(userId = userId),
The `getLibrary(...)` call here is formatted inconsistently with the rest of the codebase (missing trailing comma in a multiline call). With ktlint experimental rules enabled, this will likely fail formatting checks; align it with existing call sites by adding the trailing comma and standard indentation.
```suggestion
GetFilmLibraryQuery(userId = userId),
```
This multiline EditFilmRequest(...) call is missing a trailing comma after the last argument; with ktlint experimental rules enabled in this repo, that often fails formatting checks. Add the trailing comma to match the style used throughout the codebase.
description = "New Description",
This multiline `EditFilmRequest(...)` call is missing a trailing comma after the last argument; with ktlint experimental rules enabled in this repo, that often fails formatting checks. Add the trailing comma to match the style used throughout the codebase.
```suggestion
description = "New Description",
```
These wildcard imports (MockMvcRequestBuilders.*, MockMvcResultMatchers.*) will fail ktlint's no-wildcard-imports rule (ktlintCheck is part of check). Replace them with explicit imports for only the methods/matchers used in this test file.
These wildcard imports (`MockMvcRequestBuilders.*`, `MockMvcResultMatchers.*`) will fail ktlint's `no-wildcard-imports` rule (ktlintCheck is part of `check`). Replace them with explicit imports for only the methods/matchers used in this test file.
```suggestion
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
```
There are consecutive blank lines between tests (e.g., around here), which will fail ktlint's standard formatting rules. Remove the extra blank line(s) so there's at most one blank line between members.
There are consecutive blank lines between tests (e.g., around here), which will fail ktlint's standard formatting rules. Remove the extra blank line(s) so there's at most one blank line between members.
```suggestion
```
This multiline CreateFilmRequest(...) call is missing a trailing comma after the last argument; with ktlint experimental rules enabled in this repo, that often fails formatting checks. Add the trailing comma to match the style used throughout the main source files.
description = "A computer hacker learns about the true nature of reality",
This multiline `CreateFilmRequest(...)` call is missing a trailing comma after the last argument; with ktlint experimental rules enabled in this repo, that often fails formatting checks. Add the trailing comma to match the style used throughout the main source files.
```suggestion
description = "A computer hacker learns about the true nature of reality",
```
This mockMvc.perform(...) is formatted as a multiline call-site but is missing the trailing comma after the argument. The main codebase uses trailing commas for multiline call-sites, and with ktlint experimental rules enabled this can fail formatting checks; update this (and similar call-sites in the file) to include the trailing comma.
This `mockMvc.perform(...)` is formatted as a multiline call-site but is missing the trailing comma after the argument. The main codebase uses trailing commas for multiline call-sites, and with ktlint experimental rules enabled this can fail formatting checks; update this (and similar call-sites in the file) to include the trailing comma.
These wildcard imports (MockMvcRequestBuilders.*, MockMvcResultMatchers.*) will fail ktlint's no-wildcard-imports rule (ktlintCheck is part of check). Replace them with explicit imports for only the methods/matchers used in this test file.
These wildcard imports (`MockMvcRequestBuilders.*`, `MockMvcResultMatchers.*`) will fail ktlint's `no-wildcard-imports` rule (ktlintCheck is part of `check`). Replace them with explicit imports for only the methods/matchers used in this test file.
```suggestion
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
```
There are consecutive blank lines in this file (e.g., here before the first test), which will fail ktlint formatting checks. Remove extra blank lines so there's at most one blank line between members.
There are consecutive blank lines in this file (e.g., here before the first test), which will fail ktlint formatting checks. Remove extra blank lines so there's at most one blank line between members.
```suggestion
```
This mockMvc.perform(...) call is formatted as a multiline call-site but is missing the trailing comma after the single argument. The main source files consistently use trailing commas in multiline call-sites, and with ktlint experimental rules enabled this can fail formatting checks; update this (and similar call-sites in the file) to include the trailing comma.
This `mockMvc.perform(...)` call is formatted as a multiline call-site but is missing the trailing comma after the single argument. The main source files consistently use trailing commas in multiline call-sites, and with ktlint experimental rules enabled this can fail formatting checks; update this (and similar call-sites in the file) to include the trailing comma.
This multiline CreateUserRequest(...) call is missing a trailing comma after the last argument. The main codebase consistently uses trailing commas in multiline argument lists, and with ktlint experimental rules enabled this can fail formatting checks; update this (and other multiline calls in the file) to include trailing commas.
This multiline `CreateUserRequest(...)` call is missing a trailing comma after the last argument. The main codebase consistently uses trailing commas in multiline argument lists, and with ktlint experimental rules enabled this can fail formatting checks; update this (and other multiline calls in the file) to include trailing commas.
These wildcard imports (MockMvcRequestBuilders.*, MockMvcResultMatchers.*) will fail ktlint's no-wildcard-imports rule (ktlintCheck is part of check). Replace them with explicit imports for only the methods/matchers used in this test file.
These wildcard imports (`MockMvcRequestBuilders.*`, `MockMvcResultMatchers.*`) will fail ktlint's `no-wildcard-imports` rule (ktlintCheck is part of `check`). Replace them with explicit imports for only the methods/matchers used in this test file.
```suggestion
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
```
This file has consecutive blank lines (e.g., between test cases), which will fail ktlint's standard formatting rules. Remove extra blank lines so there's at most one blank line between members.
This file has consecutive blank lines (e.g., between test cases), which will fail ktlint's standard formatting rules. Remove extra blank lines so there's at most one blank line between members.
```suggestion
```
Fixed all copilot review issues in commits b7a246e and 44483d7:
Wildcard imports → replaced with explicit imports in all 3 test files
Trailing commas → added throughout all multiline calls in test files
searchByTitle 404 → endpoint now returns 404 (not 200 with empty body) when film is not found; updated tests accordingly
Available-films tests → added two tests in FilmLibraryControllerTest: one verifying a film in the user's library is excluded, and one verifying all films appear when the user has no library
getAvailableFilms EntityNotFoundException → already handled (falls back to returning all films)
ktlint formatting → ran ktlintFormat to fix chain-method-continuation and multiline-expression-wrapping issues; ktlintCheck passes cleanly
> @glashark fix copilot review issues
Fixed all copilot review issues in commits b7a246e and 44483d7:
- **Wildcard imports** → replaced with explicit imports in all 3 test files
- **Trailing commas** → added throughout all multiline calls in test files
- **`searchByTitle` 404** → endpoint now returns 404 (not 200 with empty body) when film is not found; updated tests accordingly
- **Available-films tests** → added two tests in `FilmLibraryControllerTest`: one verifying a film in the user's library is excluded, and one verifying all films appear when the user has no library
- **`getAvailableFilms` EntityNotFoundException** → already handled (falls back to returning all films)
- **ktlint formatting** → ran `ktlintFormat` to fix `chain-method-continuation` and `multiline-expression-wrapping` issues; `ktlintCheck` passes cleanly
The author of this PR is on the CodeRabbit Free Plan. In order to use the Chat feature, please upgrade the PR author to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.
<!-- This is an auto-generated reply by CodeRabbit -->
The author of this PR is on the CodeRabbit Free Plan. In order to use the Chat feature, please upgrade the PR author to CodeRabbit Pro by visiting <https://app.coderabbit.ai/login>.
@glashark fix CI failing and resolve conflicts in order to merge
@glashark fix CI failing and resolve conflicts in order to merge
copilot-pull-request-reviewer[bot]
(Migrated from github.com)
reviewed 2026-05-03 17:08:34 +00:00
copilot-pull-request-reviewer[bot]
(Migrated from github.com)
left a comment
Copy Link
Copy Source
Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.
Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.
Review completed and issues addressed; latest fixes are in 267ecfe (removeFilm stays expression-body with 204), with prior CI/merge fixes in 2202532 and 47ff6d8.
> @copilot+gpt-5.2-codex review
Review completed and issues addressed; latest fixes are in 267ecfe (removeFilm stays expression-body with 204), with prior CI/merge fixes in 2202532 and 47ff6d8.
copilot-pull-request-reviewer[bot]
(Migrated from github.com)
reviewed 2026-05-08 19:36:51 +00:00
copilot-pull-request-reviewer[bot]
(Migrated from github.com)
left a comment
Copy Link
Copy Source
Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.
Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Reopened as previous pull request was targeted on incorrect branch
Comment
@coderabbitai helpto get the list of available commands and usage tips.Pull request overview
Adds Spring Boot integration tests for key REST controllers and extends the film API to support title-based lookup and listing films not currently in a user’s library.
Changes:
@SpringBootTest+MockMvcintegration tests for Users, Films, and Film Library endpoints.findByTitleand exposed/api/films/search./api/users/{userId}/library/available-filmsto return films excluding the one currently in the user’s library.Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 19 comments.
Show a summary per file
findByTitle,findAll) used by new controller endpoints.findByTitleto the repository port./searchendpoint backed byFilmService.findByTitle./available-filmsendpoint backed byFilmService.findAll.findByTitleusing JDBC query.💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
findByTitlereturns the first matching row without a deterministic order, and titles aren't constrained to be unique in the schema; this can lead to unpredictable results if multiple films share a title. Consider enforcing uniqueness at the DB level or making the query deterministic (e.g.,ORDER BY+LIMIT 1) and ensure formatting matches ktlint (trailing comma on the last argument in this multiline call).There are multiple consecutive blank lines after the
packagedeclaration here; ktlint will flag consecutive blank lines. Collapse this to a single blank line before the imports.@@ -15,3 +15,4 @@import org.springframework.http.ResponseEntityimport org.springframework.web.bind.annotation.DeleteMappingimport org.springframework.web.bind.annotation.GetMappingimport org.springframework.web.bind.annotation.PatchMappingorg.springframework.web.bind.annotation.*is a wildcard import and is redundant with the explicit annotation imports above; ktlint (enabled in this repo) will fail on wildcard/redundant imports. Replace the wildcard import with only the specific annotations you use (and remove any duplicates).searchByTitlereturnsnullwhen a film isn't found, which produces a 200 with an empty body. Other not-found scenarios in this API return 404 viaEntityNotFoundException/ApiExceptionHandler; consider returning a 404 (or 204) explicitly (e.g.,ResponseEntity.notFound()), to keep error semantics consistent for clients.org.springframework.web.bind.annotation.*is a wildcard import and is redundant with the explicit annotation imports above; ktlint (enabled in this repo) will fail on wildcard/redundant imports. Replace the wildcard import with only the specific annotations you use (and remove any duplicates).getAvailableFilmsassumes the user already has a library row; if not,getFilmLibraryUseCase.getLibrary(...)will throwEntityNotFoundExceptionand this endpoint will return 404, even though listing available films could reasonably work without an existing library. If the intended behavior is to return all films when no library exists (or after a library has been deleted), handle the not-found case explicitly (e.g., fall back to an empty library / no excluded film).This new endpoint isn't covered by the existing
FilmLibraryControllerTestsuite. Add controller-level tests for/api/users/{userId}/library/available-films(e.g., user with a film in library vs user with none) to prevent regressions.The
getLibrary(...)call here is formatted inconsistently with the rest of the codebase (missing trailing comma in a multiline call). With ktlint experimental rules enabled, this will likely fail formatting checks; align it with existing call sites by adding the trailing comma and standard indentation.@@ -0,0 +1,140 @@package com.project.movienight.controllersThis multiline
EditFilmRequest(...)call is missing a trailing comma after the last argument; with ktlint experimental rules enabled in this repo, that often fails formatting checks. Add the trailing comma to match the style used throughout the codebase.These wildcard imports (
MockMvcRequestBuilders.*,MockMvcResultMatchers.*) will fail ktlint'sno-wildcard-importsrule (ktlintCheck is part ofcheck). Replace them with explicit imports for only the methods/matchers used in this test file.There are consecutive blank lines between tests (e.g., around here), which will fail ktlint's standard formatting rules. Remove the extra blank line(s) so there's at most one blank line between members.
This multiline
CreateFilmRequest(...)call is missing a trailing comma after the last argument; with ktlint experimental rules enabled in this repo, that often fails formatting checks. Add the trailing comma to match the style used throughout the main source files.This
mockMvc.perform(...)is formatted as a multiline call-site but is missing the trailing comma after the argument. The main codebase uses trailing commas for multiline call-sites, and with ktlint experimental rules enabled this can fail formatting checks; update this (and similar call-sites in the file) to include the trailing comma.@@ -0,0 +1,204 @@package com.project.movienight.controllersThese wildcard imports (
MockMvcRequestBuilders.*,MockMvcResultMatchers.*) will fail ktlint'sno-wildcard-importsrule (ktlintCheck is part ofcheck). Replace them with explicit imports for only the methods/matchers used in this test file.There are consecutive blank lines in this file (e.g., here before the first test), which will fail ktlint formatting checks. Remove extra blank lines so there's at most one blank line between members.
This
mockMvc.perform(...)call is formatted as a multiline call-site but is missing the trailing comma after the single argument. The main source files consistently use trailing commas in multiline call-sites, and with ktlint experimental rules enabled this can fail formatting checks; update this (and similar call-sites in the file) to include the trailing comma.@@ -0,0 +1,108 @@package com.project.movienight.controllersThis multiline
CreateUserRequest(...)call is missing a trailing comma after the last argument. The main codebase consistently uses trailing commas in multiline argument lists, and with ktlint experimental rules enabled this can fail formatting checks; update this (and other multiline calls in the file) to include trailing commas.These wildcard imports (
MockMvcRequestBuilders.*,MockMvcResultMatchers.*) will fail ktlint'sno-wildcard-importsrule (ktlintCheck is part ofcheck). Replace them with explicit imports for only the methods/matchers used in this test file.This file has consecutive blank lines (e.g., between test cases), which will fail ktlint's standard formatting rules. Remove extra blank lines so there's at most one blank line between members.
@glashark fix copilot review issues
@copilot review again
Fixed all copilot review issues in commits
b7a246eand44483d7:searchByTitle404 → endpoint now returns 404 (not 200 with empty body) when film is not found; updated tests accordinglyFilmLibraryControllerTest: one verifying a film in the user's library is excluded, and one verifying all films appear when the user has no librarygetAvailableFilmsEntityNotFoundException → already handled (falls back to returning all films)ktlintFormatto fixchain-method-continuationandmultiline-expression-wrappingissues;ktlintCheckpasses cleanly@coderabbitai summarize
The author of this PR is on the CodeRabbit Free Plan. In order to use the Chat feature, please upgrade the PR author to CodeRabbit Pro by visiting https://app.coderabbit.ai/login.
@glashark fix CI failing and resolve conflicts in order to merge
Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.
@copilot+gpt-5.2-codex review
Review completed and issues addressed; latest fixes are in
267ecfe(removeFilm stays expression-body with 204), with prior CI/merge fixes in2202532and47ff6d8.Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.