Give a library book one form in the API
A book from the search, from the list of library candidates and from a lookup now has the same fields, with the authors as a list.
This commit is contained in:
@@ -188,7 +188,7 @@ test('library import sends only selected books and handles an empty candidate li
|
||||
api.on('GET', 'library/candidates', []);
|
||||
await click(main, 'Find stories in the library');
|
||||
assert.match(main.textContent, /tracked already/);
|
||||
const books = [{ calibre_id: 8, uuid: 'a', title: 'A' }, { calibre_id: 9, uuid: 'b', title: 'B' }];
|
||||
const books = [{ id: 8, uuid: 'a', title: 'A', authors: ['W'] }, { id: 9, uuid: 'b', title: 'B', authors: [] }];
|
||||
api.on('GET', 'library/candidates', books);
|
||||
await click(main, 'Find stories in the library');
|
||||
change(field(main, 'Select all'), false);
|
||||
@@ -479,7 +479,7 @@ test('library search trims the query and links by UUID', async () => {
|
||||
await settle();
|
||||
assert.match(main.textContent, /No library books match/);
|
||||
api.on('GET', 'library/search?q=A%20%26%20B', [{ id: 7, uuid: 'book-7', title: 'A & B', authors: ['A', 'B'] },
|
||||
{ id: 8, uuid: 'book-8', title: 'Tracked', authors: 'Writer', tracked_as: 'Other' }]);
|
||||
{ id: 8, uuid: 'book-8', title: 'Tracked', authors: ['Writer'], tracked_as: 'Other' }]);
|
||||
emit(form, 'submit');
|
||||
await settle();
|
||||
const links = nodes(main).filter((el) => el.tagName === 'button' && el.textContent === 'Link');
|
||||
|
||||
@@ -91,7 +91,7 @@ def test_library_search_link_import_and_unlink(client, story, monkeypatch):
|
||||
cwa.get_book.return_value = book.to_dict()
|
||||
monkeypatch.setattr(o, "cwa", lambda: cwa)
|
||||
monkeypatch.setattr(config, "CWA_URL", "https://cwa.example")
|
||||
assert client.get("/api/library/candidates").json[0]["calibre_id"] == 7
|
||||
assert client.get("/api/library/candidates").json[0]["id"] == 7
|
||||
assert client.get("/api/library/search?q=Title").json[0]["tracked_as"] is None
|
||||
cwa.search.assert_called_once_with("Title")
|
||||
linked = client.post(f"/api/stories/{sid}/link", json={"uuid": "book-7"}, headers=H)
|
||||
|
||||
@@ -142,7 +142,14 @@ def test_import_from_the_library(fake):
|
||||
def test_library_candidates_and_search(fake):
|
||||
candidates = orchestrator.library_candidates()
|
||||
assert candidates == [
|
||||
{"calibre_id": 1, "uuid": "uuid-1", "title": "Test Story", "authors": "Writer", "site": "www.royalroad.com"}
|
||||
{
|
||||
"id": 1,
|
||||
"uuid": "uuid-1",
|
||||
"title": "Test Story",
|
||||
"authors": ["Writer"],
|
||||
"publisher": "www.royalroad.com",
|
||||
"formats": ["epub"],
|
||||
}
|
||||
]
|
||||
story_id = add_story()
|
||||
orchestrator.link_story(story_id, "uuid-1")
|
||||
|
||||
Reference in New Issue
Block a user