docs: Add library folder validation to Create Media Item Bruno test

- Add test_create_media_item_no_folders test case
- Document 400 error for libraries without folders
- Add prerequisites section explaining folder requirement
- Include setup workflow example
- Link to Add Library Folder Bruno request

Related: Handler validation and service layer changes
This commit is contained in:
2026-02-09 14:29:09 -05:00
parent ad910230d8
commit 8f00bfba66
+56 -1
View File
@@ -62,6 +62,33 @@ tests {
return true;
}
test_create_media_item_no_folders(status, headers, body) {
if (status !== 400) {
throw new Error("Expected status 400 for library with no folders, got " + status);
}
let data;
try {
data = JSON.parse(body);
} catch (e) {
throw new Error("Response body is not valid JSON");
}
if (!data || typeof data !== 'object') {
throw new Error("Expected error object in response");
}
if (!data.error || typeof data.error !== 'string') {
throw new Error("Expected error message in response");
}
if (!data.error.includes("folder")) {
throw new Error("Error message should mention folders requirement");
}
return true;
}
}
vars:pre-request {
@@ -84,6 +111,11 @@ settings {
**Authentication:** Required (Bearer token, admin only)
**Prerequisites**
- Library must have at least one folder configured before media items can be added
- Use `POST /api/libraries/{library_id}/folders` to add folders first
- See: [Add Library Folder](../../library/Add%20Library%20Folder.bru)
**Request Body:**
- `library_id` (string, required): Library UUID
- `title` (string, required): Media item title
@@ -127,14 +159,37 @@ settings {
- Case-insensitive deduplication (keeps version with punctuation if exists)
- Example: `["acme corp", "ACME CORP.", "acme corp"]` → `["ACME CORP."]`
**Validation Error Response**
- **400 Bad Request** - Library has no folders:
```json
{
"error": "Cannot add media items to a library with no folders. Please add at least one folder to the library first."
}
```
**Status Codes:**
- 201: Media item created successfully
- 400: Invalid request data
- 400: Invalid request data OR library has no folders
- 401: Unauthorized
- 403: Forbidden (admin access required)
- 404: Library not found
- 500: Internal server error
**Setup Workflow Example:**
```bash
# 1. Create library
POST /api/libraries
{ "name": "My Books", "type": "ebooks" }
# 2. Add folder to library (REQUIRED before adding media items)
POST /api/libraries/{library_id}/folders
{ "folder_path": "/mnt/books/my-library" }
# 3. Create media items (now that library has folders)
POST /api/media-items
{ "library_id": "...", "title": "Book Title", ... }
```
**Examples:**
- Create media item: `POST /api/media-items`