test(api): add Bruno tests for sync-kobo and OPDS features
Sync-Kobo: - Auto link books endpoint tests - Bulk link books endpoint tests - Get unlinked book suggestions endpoint tests OPDS: - Download book with on-the-fly KEPUB conversion tests All tests cover no user, user, and admin contexts
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"meta": {
|
||||
"name": "Download Book KEPUB (On-the-fly Conversion)",
|
||||
"type": "http",
|
||||
"event": [
|
||||
{
|
||||
"listen": "test",
|
||||
"script": {
|
||||
"exec": [
|
||||
"// Test format-specific hash header",
|
||||
"const kepubHash = resp.headers.get('X-Bookmann-KEPUB-SHA256');",
|
||||
"if (kepubHash) {",
|
||||
" tests['KEPUB hash present'] = true;",
|
||||
" tests['Hash is 64 chars'] = kepubHash.length === 64;",
|
||||
"} else {",
|
||||
" tests['KEPUB hash present'] = false;",
|
||||
"}",
|
||||
"",
|
||||
"// Verify Bookmann UUID header",
|
||||
"const bookmannUUID = resp.headers.get('X-Bookmann-UUID');",
|
||||
"tests['Bookmann UUID present'] = bookmannUUID !== null;",
|
||||
"",
|
||||
"// Verify content type",
|
||||
"const contentType = resp.headers.get('Content-Type');",
|
||||
"tests['Content-Type is KEPUB'] = contentType && contentType.includes('kepub');"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"req": {
|
||||
"url": "{{baseUrl}}/opds/devices/{{deviceId}}/download/{{mediaItemId}}?format=kepub",
|
||||
"method": "GET"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"meta": {
|
||||
"name": "Auto-Link Unlinked Books",
|
||||
"type": "http"
|
||||
},
|
||||
"req": {
|
||||
"url": "{{baseUrl}}/sync/auto-link-books",
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
},
|
||||
{
|
||||
"key": "Authorization",
|
||||
"value": "Bearer {{authToken}}"
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"confidence_threshold": 0.8,
|
||||
"limit": 50
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"meta": {
|
||||
"name": "Bulk Link Unlinked Books",
|
||||
"type": "http"
|
||||
},
|
||||
"req": {
|
||||
"url": "{{baseUrl}}/sync/bulk-link-books",
|
||||
"method": "POST",
|
||||
"header": [
|
||||
{
|
||||
"key": "Content-Type",
|
||||
"value": "application/json"
|
||||
},
|
||||
{
|
||||
"key": "Authorization",
|
||||
"value": "Bearer {{authToken}}"
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"links": [
|
||||
{
|
||||
"unlinked_book_id": "{{unlinkedBookId1}}",
|
||||
"media_item_id": "{{mediaItemId1}}",
|
||||
"confidence_score": 1.0
|
||||
},
|
||||
{
|
||||
"unlinked_book_id": "{{unlinkedBookId2}}",
|
||||
"media_item_id": "{{mediaItemId2}}",
|
||||
"confidence_score": 0.9
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"meta": {
|
||||
"name": "Get Unlinked Book Suggestions",
|
||||
"type": "http"
|
||||
},
|
||||
"req": {
|
||||
"url": "{{baseUrl}}/sync/unlinked-books/{{unlinkedBookId}}/suggestions",
|
||||
"method": "GET",
|
||||
"header": [
|
||||
{
|
||||
"key": "Authorization",
|
||||
"value": "Bearer {{authToken}}"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user