Static blog with front page summary
Goal: have a personal blog, and try out another point in the 'modular app design with elixir' space. Designing OTP systems with elixir had some interesting ideas.
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
defmodule Blogex.Test.Setup do
|
||||
@moduledoc """
|
||||
Reusable setup blocks for blog tests.
|
||||
"""
|
||||
|
||||
import Blogex.Test.PostBuilder
|
||||
|
||||
@doc """
|
||||
Starts a FakeBlog with a standard set of posts.
|
||||
Returns `%{blog: module, posts: posts}`.
|
||||
"""
|
||||
def with_blog(context \\ %{}, opts \\ []) do
|
||||
posts = Keyword.get(opts, :posts, default_posts())
|
||||
blog_opts = Keyword.drop(opts, [:posts])
|
||||
|
||||
{:ok, _} = Blogex.Test.FakeBlog.start(posts, blog_opts)
|
||||
|
||||
Map.merge(context, %{blog: Blogex.Test.FakeBlog, posts: posts})
|
||||
end
|
||||
|
||||
@doc "A small set of posts covering common scenarios."
|
||||
def default_posts do
|
||||
[
|
||||
build(
|
||||
id: "newest-post",
|
||||
date: ~D[2026-03-10],
|
||||
tags: ["elixir", "otp"],
|
||||
published: true
|
||||
),
|
||||
build(
|
||||
id: "middle-post",
|
||||
date: ~D[2026-02-15],
|
||||
tags: ["elixir", "testing"],
|
||||
published: true
|
||||
),
|
||||
build(
|
||||
id: "oldest-post",
|
||||
date: ~D[2026-01-05],
|
||||
tags: ["devops"],
|
||||
published: true
|
||||
),
|
||||
build(
|
||||
id: "draft-post",
|
||||
date: ~D[2026-03-12],
|
||||
tags: ["elixir"],
|
||||
published: false
|
||||
)
|
||||
]
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user