Update to refatactor tests for syncing.

dev
KKlochko 1 month ago
parent 493aca0e5b
commit a25a4e24da

@ -26,17 +26,13 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do
updated_at: "2025-03-21T09:20:48.791539Z" updated_at: "2025-03-21T09:20:48.791539Z"
} }
{:ok, inserted_at, 0} = DateTime.from_iso8601(author[:inserted_at])
{:ok, updated_at, 0} = DateTime.from_iso8601(author[:updated_at])
assert :ok = AuthorSync.create_update(author, server.id) assert :ok = AuthorSync.create_update(author, server.id)
assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id)
author = author =
author author
|> Map.replace(:inserted_at, inserted_at)
|> Map.replace(:updated_at, updated_at)
|> Map.delete(:author_alias_registry_id) |> Map.delete(:author_alias_registry_id)
|> datetime_from_iso8601_for_map()
assert get_submap(saved_author, author) == author assert get_submap(saved_author, author) == author
assert nil != saved_author.author_alias_registry_id assert nil != saved_author.author_alias_registry_id
@ -56,16 +52,12 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do
updated_at: "2025-03-21T09:20:48.791539Z" updated_at: "2025-03-21T09:20:48.791539Z"
} }
{:ok, inserted_at, 0} = DateTime.from_iso8601(author[:inserted_at])
{:ok, updated_at, 0} = DateTime.from_iso8601(author[:updated_at])
assert :ok = AuthorSync.create_update(author, server.id) assert :ok = AuthorSync.create_update(author, server.id)
assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id)
author = author =
author author
|> Map.replace(:inserted_at, inserted_at) |> datetime_from_iso8601_for_map()
|> Map.replace(:updated_at, updated_at)
assert get_submap(saved_author, author) == author assert get_submap(saved_author, author) == author
assert nil != saved_author.author_alias_registry_id assert nil != saved_author.author_alias_registry_id
@ -88,7 +80,7 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.AuthorSyncTest do
assert :ok = AuthorSync.create_update(author_attrs, server.id) assert :ok = AuthorSync.create_update(author_attrs, server.id)
assert {:ok, saved_author} = Metadata.get_author_by_id(author.id) assert {:ok, saved_author} = Metadata.get_author_by_id(author.id)
assert author = saved_author assert get_submap(author, author_attrs) == get_submap(saved_author, author_attrs)
end end
test "the local existing author wouldn't updated", %{user: user} do test "the local existing author wouldn't updated", %{user: user} do

@ -32,20 +32,17 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
updated_at: "2025-04-01T18:14:25.754055Z" updated_at: "2025-04-01T18:14:25.754055Z"
} }
{:ok, inserted_at, 0} = DateTime.from_iso8601(book[:inserted_at])
{:ok, updated_at, 0} = DateTime.from_iso8601(book[:updated_at])
assert :ok = BookSync.create_update(book, server.id) assert :ok = BookSync.create_update(book, server.id)
assert {:ok, saved_book} = Metadata.get_book_by_id(book.id) assert {:ok, saved_book} = Metadata.get_book_by_id(book.id)
book = book =
book book
|> Map.replace(:inserted_at, inserted_at) |> datetime_from_iso8601_for_map()
|> Map.replace(:updated_at, updated_at)
|> Map.replace(:published, Date.from_iso8601!(book[:published])) |> Map.replace(:published, Date.from_iso8601!(book[:published]))
assert nil != saved_book.book_editions_registry_id assert nil != saved_book.book_editions_registry_id
assert server.id == saved_book.dbi_server_id assert server.id == saved_book.dbi_server_id
assert get_submap(saved_book, book) == book
end end
test "a new book has the same editions registry" do test "a new book has the same editions registry" do
@ -68,20 +65,17 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
book_editions_registry_id: "1ed81d9e-3757-472a-aa3b-44fcdfbe770a" book_editions_registry_id: "1ed81d9e-3757-472a-aa3b-44fcdfbe770a"
} }
{:ok, inserted_at, 0} = DateTime.from_iso8601(book[:inserted_at])
{:ok, updated_at, 0} = DateTime.from_iso8601(book[:updated_at])
assert :ok = BookSync.create_update(book, server.id) assert :ok = BookSync.create_update(book, server.id)
assert {:ok, saved_book} = Metadata.get_book_by_id(book.id) assert {:ok, saved_book} = Metadata.get_book_by_id(book.id)
book = book =
book book
|> Map.replace(:inserted_at, inserted_at) |> datetime_from_iso8601_for_map()
|> Map.replace(:updated_at, updated_at)
|> Map.replace(:published, Date.from_iso8601!(book[:published])) |> Map.replace(:published, Date.from_iso8601!(book[:published]))
assert nil != saved_book.book_editions_registry_id assert nil != saved_book.book_editions_registry_id
assert server.id == saved_book.dbi_server_id assert server.id == saved_book.dbi_server_id
assert get_submap(saved_book, book) == book
end end
test "a new book with relationships will be created" do test "a new book with relationships will be created" do
@ -166,10 +160,10 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.BookSyncTest do
} }
assert :ok = BookSync.create_update(book_attrs, server.id) assert :ok = BookSync.create_update(book_attrs, server.id)
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 "the local existing book wouldn't updated", %{user: user} do test "the local existing book wouldn't updated" do
server = generate(dbi_server(url: @test_server_endpoint)) server = generate(dbi_server(url: @test_server_endpoint))
book = generate(book()) book = generate(book())

@ -35,14 +35,15 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.DBIServerSyncTest do
|> Map.replace(:inserted_at, inserted_at) |> Map.replace(:inserted_at, inserted_at)
|> Map.replace(:updated_at, updated_at) |> Map.replace(:updated_at, updated_at)
assert dbi_server = saved_dbi_server assert dbi_server == get_submap(saved_dbi_server, dbi_server)
assert server.id == saved_dbi_server.dbi_server_id assert server.id == saved_dbi_server.dbi_server_id
end end
test "update an existing dbi_server", %{user: user} do test "update an existing dbi_server", %{user: user} do
server = generate(dbi_server(url: @test_server_endpoint)) server = generate(dbi_server(url: @test_server_endpoint))
{:ok, dbi_server} = Metadata.create_dbi_server("Test", "http://localhost:4001", false, actor: user) {:ok, dbi_server} =
Metadata.create_dbi_server("Test", "http://localhost:4001", false, actor: user)
dbi_server_attrs = %{ dbi_server_attrs = %{
id: dbi_server.id, id: dbi_server.id,
@ -55,7 +56,9 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.DBIServerSyncTest do
assert :ok = DBIServerSync.create_update(dbi_server_attrs, server.id) assert :ok = DBIServerSync.create_update(dbi_server_attrs, server.id)
assert {:ok, saved_dbi_server} = Metadata.get_dbi_server_by_id(dbi_server.id) assert {:ok, saved_dbi_server} = Metadata.get_dbi_server_by_id(dbi_server.id)
assert dbi_server_attrs = saved_dbi_server assert datetime_from_iso8601_for_map(dbi_server_attrs) ==
get_submap(saved_dbi_server, dbi_server_attrs)
assert server.id == saved_dbi_server.dbi_server_id assert server.id == saved_dbi_server.dbi_server_id
end end
end end

@ -23,9 +23,6 @@ defmodule DecentralisedBookIndex.Sync.DataTransformers.PublisherSyncTest do
updated_at: "2025-03-21T09:20:48.791539Z" updated_at: "2025-03-21T09:20:48.791539Z"
} }
{:ok, inserted_at, 0} = DateTime.from_iso8601(publisher[:inserted_at])
{:ok, updated_at, 0} = DateTime.from_iso8601(publisher[:updated_at])
assert :ok = PublisherSync.create_update(publisher, server.id) assert :ok = PublisherSync.create_update(publisher, server.id)
assert {:ok, saved_publisher} = Metadata.get_publisher_by_id(publisher.id) assert {:ok, saved_publisher} = Metadata.get_publisher_by_id(publisher.id)

@ -16,10 +16,10 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncAuthorsTaskTest do
test "sync authors", %{user: user} do test "sync authors", %{user: user} do
server = generate(dbi_server(url: @test_server_endpoint)) server = generate(dbi_server(url: @test_server_endpoint))
{:ok, author} = Metadata.create_author("Author", "An description", nil, nil, actor: user) {:ok, _author} = Metadata.create_author("Author", "An description", nil, nil, actor: user)
{:ok, author} = Metadata.create_author("Author2", "An description", nil, nil, actor: user) {:ok, _author} = Metadata.create_author("Author2", "An description", nil, nil, actor: user)
assert server = SyncAuthorsTask.sync(server) assert ^server = SyncAuthorsTask.sync(server)
end end
end end
end end

@ -2,7 +2,6 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncBookTaskTest do
use DecentralisedBookIndex.DataCase use DecentralisedBookIndex.DataCase
alias DecentralisedBookIndex.SyncTasks.SyncBooksTask alias DecentralisedBookIndex.SyncTasks.SyncBooksTask
alias DecentralisedBookIndex.Metadata
alias DecentralisedBookIndex.TestEndpoints alias DecentralisedBookIndex.TestEndpoints
@test_server_endpoint TestEndpoints.test_api_endpoint() @test_server_endpoint TestEndpoints.test_api_endpoint()
@ -14,7 +13,7 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncBookTaskTest do
_book = generate(book()) _book = generate(book())
_book = generate(book()) _book = generate(book())
assert server = SyncBooksTask.sync(server) assert ^server = SyncBooksTask.sync(server)
end end
end end
end end

@ -19,7 +19,7 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncDBIServerTaskTest do
{:ok, _dbi_server} = Metadata.create_dbi_server("Test", "http://localhost:4001", false, actor: user) {:ok, _dbi_server} = Metadata.create_dbi_server("Test", "http://localhost:4001", false, actor: user)
{:ok, _dbi_server} = Metadata.create_dbi_server("Test2", "http://localhost:4001", false, actor: user) {:ok, _dbi_server} = Metadata.create_dbi_server("Test2", "http://localhost:4001", false, actor: user)
assert server = SyncDBIServerTask.sync(server) assert ^server = SyncDBIServerTask.sync(server)
end end
end end
end end

@ -19,7 +19,7 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncPublishersTaskTest do
{:ok, _publisher} = Metadata.create_publisher("Publisher", actor: user) {:ok, _publisher} = Metadata.create_publisher("Publisher", actor: user)
{:ok, _publisher} = Metadata.create_publisher("Publisher2", actor: user) {:ok, _publisher} = Metadata.create_publisher("Publisher2", actor: user)
assert server = SyncPublishersTask.sync(server) assert ^server = SyncPublishersTask.sync(server)
end end
end end
end end

@ -3,9 +3,6 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncServerTaskTest do
alias DecentralisedBookIndex.SyncTasks.SyncServerTask alias DecentralisedBookIndex.SyncTasks.SyncServerTask
alias DecentralisedBookIndex.Sync.ApiClients.FetchJson
alias DecentralisedBookIndex.Sync.AuthorSync
alias DecentralisedBookIndex.Metadata alias DecentralisedBookIndex.Metadata
alias DecentralisedBookIndex.TestEndpoints alias DecentralisedBookIndex.TestEndpoints
@ -18,19 +15,19 @@ defmodule DecentralisedBookIndex.SyncTasks.SyncServerTaskTest do
describe "sync all" do describe "sync all" do
test "servers", %{user: user} do test "servers", %{user: user} do
server = generate(dbi_server(url: @test_server_endpoint)) _server = generate(dbi_server(url: @test_server_endpoint))
{:ok, author} = Metadata.create_author("Author", "An description", nil, nil, actor: user) {:ok, _author} = Metadata.create_author("Author", "An description", nil, nil, actor: user)
assert server = SyncServerTask.sync_all() assert :ok = SyncServerTask.sync_all()
end end
end end
describe "sync one" do describe "sync one" do
test "server", %{user: user} do test "server", %{user: user} do
server = generate(dbi_server(url: @test_server_endpoint)) server = generate(dbi_server(url: @test_server_endpoint))
{:ok, author} = Metadata.create_author("Author", "An description", nil, nil, actor: user) {:ok, _author} = Metadata.create_author("Author", "An description", nil, nil, actor: user)
assert server = SyncServerTask.sync_one(server) assert :ok = SyncServerTask.sync_one(server)
end end
end end
end end

Loading…
Cancel
Save