Skip to content
This repository was archived by the owner on Aug 18, 2020. It is now read-only.

Commit baf55d4

Browse files
author
Michael Hueschen
committed
[CO-354] Tweak style
- Rename to `canonicalJsonTestWithGen`. - Use Aeson optional-with-default combinator.
1 parent fd4b172 commit baf55d4

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

core/src/Pos/Aeson/Core/Configuration.hs

+3-8
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Pos.Aeson.Core.Configuration
88

99
import Universum
1010

11-
import Data.Aeson (FromJSON, parseJSON, withObject, (.:), (.:?))
11+
import Data.Aeson (FromJSON, parseJSON, withObject, (.!=), (.:), (.:?))
1212
import Data.Aeson.TH (deriveToJSON)
1313
import Serokell.Aeson.Options (defaultOptions)
1414

@@ -21,11 +21,6 @@ instance FromJSON CoreConfiguration where
2121
parseJSON = withObject "core" $ \obj -> do
2222
ccg <- obj .: "genesis"
2323
ccdsv <- obj .: "dbSerializeVersion"
24-
ccrnm <- determineRNM <$> obj .:? "requiresNetworkMagic"
25-
pure $ CoreConfiguration ccg ccdsv ccrnm
26-
where
2724
-- If "requiresNetworkMagic" is not specified, default to NMMustBeJust
28-
determineRNM :: Maybe RequiresNetworkMagic -> RequiresNetworkMagic
29-
determineRNM mrnm = case mrnm of
30-
Nothing -> NMMustBeJust
31-
Just x -> x
25+
ccrnm <- obj .:? "requiresNetworkMagic" .!= NMMustBeJust
26+
pure $ CoreConfiguration ccg ccdsv ccrnm

lib/src/Test/Pos/Helpers.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
module Test.Pos.Helpers
99
( canonicalJsonTest
10-
, canonicalJsonTest'
10+
, canonicalJsonTestWithGen
1111
) where
1212

1313
import Universum
@@ -41,11 +41,11 @@ canonicalJsonTest =
4141
canonicalJsonRenderAndDecode x .&&. canonicalJsonPrettyAndDecode x
4242

4343
-- | Basically the same as `canonicalJsonTest` but tests a given `Gen a`.
44-
canonicalJsonTest'
44+
canonicalJsonTestWithGen
4545
:: forall a. (IdTestingRequiredClassesAlmost a, ToAndFromCanonicalJson a)
4646
=> Gen a
4747
-> Spec
48-
canonicalJsonTest' genA =
48+
canonicalJsonTestWithGen genA =
4949
prop (typeName @a) $ forAll genA $ \x ->
5050
canonicalJsonRenderAndDecode x .&&. canonicalJsonPrettyAndDecode x
5151
where

lib/test/Test/Pos/Genesis/CanonicalSpec.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Pos.Crypto (RequiresNetworkMagic (..))
1515
import Test.Pos.Configuration (withDefConfiguration)
1616
import Test.Pos.Core.Arbitrary (genGenesisData, genGenesisProtocolConstants)
1717
import Test.Pos.Crypto.Arbitrary (genProtocolMagicUniformWithRNM)
18-
import Test.Pos.Helpers (canonicalJsonTest, canonicalJsonTest')
18+
import Test.Pos.Helpers (canonicalJsonTest, canonicalJsonTestWithGen)
1919

2020
spec :: Spec
2121
spec = withDefConfiguration $ \_ -> describe "Genesis" $ modifyMaxSuccess (const 10) $ do
@@ -30,8 +30,8 @@ spec = withDefConfiguration $ \_ -> describe "Genesis" $ modifyMaxSuccess (const
3030
-- `NMMustBeJust`.
3131
describe "Generator restricted to only use NMMustBeJust" $ do
3232
let genPM = genProtocolMagicUniformWithRNM NMMustBeJust
33-
canonicalJsonTest' $ genGenesisProtocolConstants genPM
34-
canonicalJsonTest' $ genGenesisData (genGenesisProtocolConstants genPM)
33+
canonicalJsonTestWithGen $ genGenesisProtocolConstants genPM
34+
canonicalJsonTestWithGen $ genGenesisData (genGenesisProtocolConstants genPM)
3535

3636
-- Unrestricted canonical JSON identity tests
3737
describe "Unrestricted tests" $ do

0 commit comments

Comments
 (0)