Skip to content

Commit dc0a2ab

Browse files
committed
test: PaginatedMeta ToJSON/ToSchema
1 parent 94f5e64 commit dc0a2ab

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.OpenAPI ()
3434
import Tasty (Property, property)
3535

3636
import Foreword
37-
import Primer.Pagination (NonNeg, Positive, mkNonNeg, mkPositive)
37+
import Primer.Pagination (NonNeg, PaginatedMeta (..), Positive, mkNonNeg, mkPositive)
3838

3939
testToJSON :: (ToJSON a, ToSchema a, Show a) => Gen a -> Property
4040
testToJSON g = property $ do
@@ -133,3 +133,26 @@ genNonNeg = G.just $ mkNonNeg <$> G.int (R.linear 0 1000)
133133

134134
tasty_NonNeg :: Property
135135
tasty_NonNeg = testToJSON genNonNeg
136+
137+
genPaginatedMeta :: Gen PaginatedMeta
138+
genPaginatedMeta = do
139+
ti <- genNonNeg
140+
ps <- genPositive
141+
fp <- genPositive
142+
pp <- G.maybe genPositive
143+
tp <- genPositive
144+
np <- G.maybe genPositive
145+
lp <- genPositive
146+
pure $
147+
PM
148+
{ totalItems = ti
149+
, pageSize = ps
150+
, firstPage = fp
151+
, prevPage = pp
152+
, thisPage = tp
153+
, nextPage = np
154+
, lastPage = lp
155+
}
156+
157+
tasty_PaginatedMeta :: Property
158+
tasty_PaginatedMeta = testToJSON genPaginatedMeta

0 commit comments

Comments
 (0)