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:
@@ -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`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user