diff --git a/lib/bds/metadata.ex b/lib/bds/metadata.ex index 871d6d9..55c28ff 100644 --- a/lib/bds/metadata.ex +++ b/lib/bds/metadata.ex @@ -417,7 +417,7 @@ defmodule BDS.Metadata do defp write_json(project, file_name, payload) do meta_dir = Path.join(Projects.project_data_dir(project), "meta") path = Path.join(meta_dir, file_name) - Persistence.atomic_write(path, Jason.encode!(payload)) + Persistence.atomic_write(path, Jason.encode!(payload, pretty: true)) end defp read_json(project, file_name) do diff --git a/lib/bds/tags.ex b/lib/bds/tags.ex index 74a3204..d57c162 100644 --- a/lib/bds/tags.ex +++ b/lib/bds/tags.ex @@ -269,7 +269,7 @@ defmodule BDS.Tags do |> maybe_put("postTemplateSlug", tag.post_template_slug) end) - Persistence.atomic_write(path, Jason.encode!(payload)) + Persistence.atomic_write(path, Jason.encode!(payload, pretty: true)) end defp validate_unique_name(project_id, name) do diff --git a/test/bds/metadata_test.exs b/test/bds/metadata_test.exs index 9f037c3..1444b1c 100644 --- a/test/bds/metadata_test.exs +++ b/test/bds/metadata_test.exs @@ -99,6 +99,10 @@ defmodule BDS.MetadataTest do category_meta_path = Path.join([temp_dir, "meta", "category-meta.json"]) publishing_path = Path.join([temp_dir, "meta", "publishing.json"]) + assert File.read!(categories_path) =~ "\n" + assert File.read!(category_meta_path) =~ "\n" + assert File.read!(publishing_path) =~ "\n" + assert ["article", "aside", "news", "page", "picture"] = Jason.decode!(File.read!(categories_path)) diff --git a/test/bds/tags_test.exs b/test/bds/tags_test.exs index d194dfc..a0b0935 100644 --- a/test/bds/tags_test.exs +++ b/test/bds/tags_test.exs @@ -30,8 +30,12 @@ defmodule BDS.TagsTest do tags_path = Path.join([temp_dir, "meta", "tags.json"]) assert File.exists?(tags_path) + contents = File.read!(tags_path) + assert contents =~ "\n" + refute String.contains?(contents, "}],[") + assert [%{"name" => "Alpha"}, %{"color" => "#000000", "name" => "Zebra"}] = - Jason.decode!(File.read!(tags_path)) + Jason.decode!(contents) end test "create_tag rejects case-insensitive duplicates per project", %{project: project} do