Skip to content

Commit 5f71f42

Browse files
committed
test: PaginatedMeta ToJSON/ToSchema
1 parent 0f86733 commit 5f71f42

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

primer-service/src/Primer/Pagination.hs

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ module Primer.Pagination (
1313
pagedDefaultClamp,
1414
-- the following are exposed for testing
1515
meta,
16+
PaginatedMeta (PM),
1617
totalItems,
1718
pageSize,
1819
firstPage,
@@ -136,7 +137,7 @@ data PaginatedMeta = PM
136137
, nextPage :: Maybe Positive
137138
, lastPage :: Positive
138139
}
139-
deriving (Generic)
140+
deriving (Generic, Show)
140141
instance ToJSON PaginatedMeta
141142
instance ToSchema PaginatedMeta
142143

primer-service/test/Tests/OpenAPI.hs

+24-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import Primer.Gen.Core.Raw (
3434
genValConName,
3535
)
3636
import Primer.OpenAPI ()
37-
import Primer.Pagination (NonNeg, Positive, mkNonNeg, mkPositive)
37+
import Primer.Pagination (NonNeg, PaginatedMeta (..), Positive, mkNonNeg, mkPositive)
3838
import Primer.Server (openAPIInfo)
3939
import Tasty (Property, property)
4040
import Test.Tasty (TestTree, testGroup)
@@ -155,3 +155,26 @@ genNonNeg = G.just $ mkNonNeg <$> G.int (R.linear 0 1000)
155155

156156
tasty_NonNeg :: Property
157157
tasty_NonNeg = testToJSON genNonNeg
158+
159+
genPaginatedMeta :: Gen PaginatedMeta
160+
genPaginatedMeta = do
161+
ti <- genNonNeg
162+
ps <- genPositive
163+
fp <- genPositive
164+
pp <- G.maybe genPositive
165+
tp <- genPositive
166+
np <- G.maybe genPositive
167+
lp <- genPositive
168+
pure $
169+
PM
170+
{ totalItems = ti
171+
, pageSize = ps
172+
, firstPage = fp
173+
, prevPage = pp
174+
, thisPage = tp
175+
, nextPage = np
176+
, lastPage = lp
177+
}
178+
179+
tasty_PaginatedMeta :: Property
180+
tasty_PaginatedMeta = testToJSON genPaginatedMeta

0 commit comments

Comments
 (0)