this repo has no description
1defmodule EslHnWeb.API.JSONTest do
2 use ExUnit.Case, async: true
3 use ExUnitProperties
4
5 import EslHn.Test.Data
6
7 @subject EslHnWeb.API.JSON
8
9 doctest @subject
10
11 describe "index/1" do
12 test "for empty list renders empty list" do
13 assert [] == @subject.index(%{items: []})
14 end
15
16 property "length of encoded data is equal to items count" do
17 check all(stories <- list_of(story())) do
18 count = length(stories)
19
20 assert count == length(@subject.index(%{items: stories}))
21 end
22 end
23
24 property "all IDs are present in result" do
25 check all(stories <- list_of(story())) do
26 ids =
27 stories
28 |> Enum.map(& &1.id)
29 |> Enum.sort()
30
31 result =
32 @subject.index(%{items: stories})
33 |> Enum.map(& &1.id)
34 |> Enum.sort()
35
36 assert ids == result
37 end
38 end
39 end
40
41 describe "show/1" do
42 property "encoded title is the same as input title" do
43 check all(story <- story()) do
44 assert story.title == @subject.show(%{item: story}).title
45 end
46 end
47 end
48end