feat: PLAN step 1 done, supposedly
This commit is contained in:
138
test/bds/compatibility_serializer_parity_test.exs
Normal file
138
test/bds/compatibility_serializer_parity_test.exs
Normal file
@@ -0,0 +1,138 @@
|
||||
defmodule BDS.CompatibilitySerializerParityTest do
|
||||
use ExUnit.Case, async: true
|
||||
|
||||
test "post frontmatter serialization matches old bDS output" do
|
||||
rendered =
|
||||
BDS.Frontmatter.serialize_document(
|
||||
[
|
||||
{"id", "post-1"},
|
||||
{"title", "Published Post"},
|
||||
{"slug", "published-post"},
|
||||
{"excerpt", "Summary"},
|
||||
{"status", :published},
|
||||
{"author", "Writer"},
|
||||
{"language", "en"},
|
||||
{"doNotTranslate", true},
|
||||
{"templateSlug", "article"},
|
||||
{"createdAt", 1_711_833_600_000},
|
||||
{"updatedAt", 1_711_920_000_000},
|
||||
{"publishedAt", 1_712_006_400_000},
|
||||
{"tags", ["alpha"]},
|
||||
{"categories", ["notes"]}
|
||||
],
|
||||
"Hello from markdown"
|
||||
)
|
||||
|
||||
assert rendered ==
|
||||
[
|
||||
"---",
|
||||
"id: post-1",
|
||||
"title: Published Post",
|
||||
"slug: published-post",
|
||||
"excerpt: Summary",
|
||||
"status: published",
|
||||
"author: Writer",
|
||||
"language: en",
|
||||
"doNotTranslate: true",
|
||||
"templateSlug: article",
|
||||
"createdAt: '2024-03-30T21:20:00.000Z'",
|
||||
"updatedAt: '2024-03-31T21:20:00.000Z'",
|
||||
"publishedAt: '2024-04-01T21:20:00.000Z'",
|
||||
"tags:",
|
||||
" - alpha",
|
||||
"categories:",
|
||||
" - notes",
|
||||
"---",
|
||||
"Hello from markdown",
|
||||
""
|
||||
]
|
||||
|> Enum.join("\n")
|
||||
end
|
||||
|
||||
test "media sidecar serialization matches old bDS output" do
|
||||
rendered =
|
||||
BDS.Sidecar.serialize_document([
|
||||
{"id", "media-from-file"},
|
||||
{"originalName", "original.jpg"},
|
||||
{"mimeType", "image/jpeg"},
|
||||
{"size", 123},
|
||||
{"width", 3},
|
||||
{"height", 2},
|
||||
{"title", "Recovered"},
|
||||
{"alt", "Recovered alt"},
|
||||
{"caption", "Recovered caption"},
|
||||
{"author", "Writer"},
|
||||
{"language", "en"},
|
||||
{"createdAt", 1_711_833_600_000},
|
||||
{"updatedAt", 1_711_920_000_000},
|
||||
{"tags", ["alpha"]},
|
||||
{"linkedPostIds", ["post-a"]}
|
||||
])
|
||||
|
||||
assert rendered ==
|
||||
[
|
||||
"---",
|
||||
"id: media-from-file",
|
||||
"originalName: \"original.jpg\"",
|
||||
"mimeType: image/jpeg",
|
||||
"size: 123",
|
||||
"width: 3",
|
||||
"height: 2",
|
||||
"title: \"Recovered\"",
|
||||
"alt: \"Recovered alt\"",
|
||||
"caption: \"Recovered caption\"",
|
||||
"author: \"Writer\"",
|
||||
"language: en",
|
||||
"createdAt: 2024-03-30T21:20:00.000Z",
|
||||
"updatedAt: 2024-03-31T21:20:00.000Z",
|
||||
"tags: [\"alpha\"]",
|
||||
"linkedPostIds: [\"post-a\"]",
|
||||
"---"
|
||||
]
|
||||
|> Enum.join("\n")
|
||||
end
|
||||
|
||||
test "media sidecar parsing accepts old bDS inline arrays and document markers" do
|
||||
contents =
|
||||
[
|
||||
"---",
|
||||
"id: media-from-file",
|
||||
"originalName: \"original.jpg\"",
|
||||
"mimeType: image/jpeg",
|
||||
"size: 123",
|
||||
"width: 3",
|
||||
"height: 2",
|
||||
"title: \"Recovered\"",
|
||||
"alt: \"Recovered alt\"",
|
||||
"caption: \"Recovered caption\"",
|
||||
"author: \"Writer\"",
|
||||
"language: en",
|
||||
"createdAt: 2024-03-30T21:20:00.000Z",
|
||||
"updatedAt: 2024-03-31T21:20:00.000Z",
|
||||
"tags: [\"alpha\", \"beta\"]",
|
||||
"linkedPostIds: [\"post-a\", \"post-b\"]",
|
||||
"---"
|
||||
]
|
||||
|> Enum.join("\n")
|
||||
|
||||
assert {:ok, fields} = BDS.Sidecar.parse_document(contents)
|
||||
|
||||
assert fields == %{
|
||||
"id" => "media-from-file",
|
||||
"originalName" => "original.jpg",
|
||||
"mimeType" => "image/jpeg",
|
||||
"size" => 123,
|
||||
"width" => 3,
|
||||
"height" => 2,
|
||||
"title" => "Recovered",
|
||||
"alt" => "Recovered alt",
|
||||
"caption" => "Recovered caption",
|
||||
"author" => "Writer",
|
||||
"language" => "en",
|
||||
"createdAt" => 1_711_833_600_000,
|
||||
"updatedAt" => 1_711_920_000_000,
|
||||
"tags" => ["alpha", "beta"],
|
||||
"linkedPostIds" => ["post-a", "post-b"]
|
||||
}
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user