|
|
@ -7,6 +7,11 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
|
|
|
|
alias DecentralisedBookIndex.TestEndpoints
|
|
|
|
alias DecentralisedBookIndex.TestEndpoints
|
|
|
|
@test_server_endpoint TestEndpoints.test_api_endpoint()
|
|
|
|
@test_server_endpoint TestEndpoints.test_api_endpoint()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
setup do
|
|
|
|
|
|
|
|
user = generate(user(role: :moderator))
|
|
|
|
|
|
|
|
%{user: user}
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
describe "sync book transformations" do
|
|
|
|
describe "sync book transformations" do
|
|
|
|
test "a new book will be created" do
|
|
|
|
test "a new book will be created" do
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
@ -164,11 +169,62 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
|
|
|
|
assert {:ok, saved_book} = Metadata.get_book_by_id(book.id)
|
|
|
|
assert {:ok, saved_book} = Metadata.get_book_by_id(book.id)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
test "update book's relationship for an existing book" do
|
|
|
|
test "the local existing book wouldn't updated", %{user: user} do
|
|
|
|
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
book = generate(book())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
book_attrs = %{
|
|
|
|
|
|
|
|
id: book.id,
|
|
|
|
|
|
|
|
cover_image_url: "/images/book_cover2.png",
|
|
|
|
|
|
|
|
description: "A cool book 2.",
|
|
|
|
|
|
|
|
format: "Ebook",
|
|
|
|
|
|
|
|
inserted_at: "2025-01-20T14:44:36.162986Z",
|
|
|
|
|
|
|
|
language: "English",
|
|
|
|
|
|
|
|
page_count: 1001,
|
|
|
|
|
|
|
|
published: "2025-03-05",
|
|
|
|
|
|
|
|
title: "New Book2",
|
|
|
|
|
|
|
|
updated_at: "2025-02-01T18:14:25.754055Z"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert :ok = BookSync.create_update(book_attrs, server.id)
|
|
|
|
|
|
|
|
assert {:ok, saved_book} = Metadata.get_book_by_id(book.id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert get_submap(saved_book, book_attrs) != book_attrs
|
|
|
|
|
|
|
|
assert saved_book.title != "New Book2"
|
|
|
|
|
|
|
|
assert saved_book.dbi_server_id == nil
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test "old book wouldn't be sync", %{user: user} do
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
|
|
|
|
|
|
|
|
book = generate(book())
|
|
|
|
book = generate(book())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
book_attrs = %{
|
|
|
|
|
|
|
|
id: book.id,
|
|
|
|
|
|
|
|
cover_image_url: "/images/book_cover2.png",
|
|
|
|
|
|
|
|
description: "A cool book 2.",
|
|
|
|
|
|
|
|
format: "Ebook",
|
|
|
|
|
|
|
|
inserted_at: "2025-01-20T14:44:36.162986Z",
|
|
|
|
|
|
|
|
language: "English",
|
|
|
|
|
|
|
|
page_count: 1001,
|
|
|
|
|
|
|
|
published: "2025-03-05",
|
|
|
|
|
|
|
|
title: "New Book2",
|
|
|
|
|
|
|
|
updated_at: "2025-02-01T18:14:25.754055Z"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert :ok = BookSync.create_update(book_attrs, server.id)
|
|
|
|
|
|
|
|
assert {:ok, saved_book} = Metadata.get_book_by_id(book.id)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assert get_submap(saved_book, book_attrs) != book_attrs
|
|
|
|
|
|
|
|
assert saved_book.title != "New Book2"
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test "update book's relationship for an existing book" do
|
|
|
|
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
book = generate(book(dbi_server_id: server.id))
|
|
|
|
|
|
|
|
|
|
|
|
author1 = generate(author())
|
|
|
|
author1 = generate(author())
|
|
|
|
author2 = generate(author())
|
|
|
|
author2 = generate(author())
|
|
|
|
publisher = generate(publisher())
|
|
|
|
publisher = generate(publisher())
|
|
|
@ -212,7 +268,8 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
|
|
|
|
published: "2025-03-04",
|
|
|
|
published: "2025-03-04",
|
|
|
|
publisher_id: publisher.id,
|
|
|
|
publisher_id: publisher.id,
|
|
|
|
title: "Book 6",
|
|
|
|
title: "Book 6",
|
|
|
|
updated_at: "2025-04-08T07:02:42.778095Z"
|
|
|
|
updated_at: datetime_add_second_as_string(book.updated_at, 10),
|
|
|
|
|
|
|
|
dbi_server_id: server.id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
assert :ok = BookSync.create_update(book_attrs, server.id)
|
|
|
|
assert :ok = BookSync.create_update(book_attrs, server.id)
|
|
|
@ -228,7 +285,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
|
|
|
|
test "olds bids and roles are destroyed after update" do
|
|
|
|
test "olds bids and roles are destroyed after update" do
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
server = generate(dbi_server(url: @test_server_endpoint))
|
|
|
|
|
|
|
|
|
|
|
|
book = generate(book())
|
|
|
|
book = generate(book(dbi_server_id: server.id))
|
|
|
|
|
|
|
|
|
|
|
|
author1 = generate(author())
|
|
|
|
author1 = generate(author())
|
|
|
|
author2 = generate(author())
|
|
|
|
author2 = generate(author())
|
|
|
@ -273,7 +330,8 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
|
|
|
|
published: "2025-03-04",
|
|
|
|
published: "2025-03-04",
|
|
|
|
publisher_id: publisher.id,
|
|
|
|
publisher_id: publisher.id,
|
|
|
|
title: "Book 6",
|
|
|
|
title: "Book 6",
|
|
|
|
updated_at: "2025-04-08T07:02:42.778095Z"
|
|
|
|
updated_at: datetime_add_second_as_string(book.updated_at, 10),
|
|
|
|
|
|
|
|
dbi_server_id: server.id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
old_bids = get_ids(Metadata.list_book_ids!())
|
|
|
|
old_bids = get_ids(Metadata.list_book_ids!())
|
|
|
|