Skip to content

Commit f50736f

Browse files
committed
Use generic-lens to disambiguate fields in OptionsSpec
Signed-off-by: Sasha Bogicevic <[email protected]>
1 parent 1dff4fc commit f50736f

File tree

2 files changed

+17
-36
lines changed

2 files changed

+17
-36
lines changed

hydra-node/hydra-node.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,7 @@ test-suite tests
326326
, contra-tracer
327327
, directory
328328
, filepath
329+
, generic-lens
329330
, hedgehog-quickcheck
330331
, hspec
331332
, hspec-golden-aeson

hydra-node/test/Hydra/OptionsSpec.hs

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
{-# LANGUAGE OverloadedLabels #-}
2+
13
module Hydra.OptionsSpec where
24

35
import Hydra.Prelude
46
import Test.Hydra.Prelude
57

8+
import Control.Lens ((.~))
9+
import Data.Generics.Labels ()
610
import Hydra.Cardano.Api (
711
ChainPoint (..),
812
NetworkId (..),
@@ -139,27 +143,21 @@ spec = parallel $
139143
defaultRunOptions
140144
{ chainConfig =
141145
Direct
142-
defaultDirectChainConfig
143-
{ networkId = Testnet (NetworkMagic 0)
144-
}
146+
(defaultDirectChainConfig & #networkId .~ Testnet (NetworkMagic 0))
145147
}
146148
["--testnet-magic", "-1"] -- Word32 overflow expected
147149
`shouldParse` Run
148150
defaultRunOptions
149151
{ chainConfig =
150152
Direct
151-
defaultDirectChainConfig
152-
{ networkId = Testnet (NetworkMagic 4294967295)
153-
}
153+
(defaultDirectChainConfig & #networkId .~ Testnet (NetworkMagic 4294967295))
154154
}
155155
["--testnet-magic", "123"]
156156
`shouldParse` Run
157157
defaultRunOptions
158158
{ chainConfig =
159159
Direct
160-
defaultDirectChainConfig
161-
{ networkId = Testnet (NetworkMagic 123)
162-
}
160+
(defaultDirectChainConfig & #networkId .~ Testnet (NetworkMagic 123))
163161
}
164162

165163
it "parses --mainnet option" $ do
@@ -168,9 +166,7 @@ spec = parallel $
168166
defaultRunOptions
169167
{ chainConfig =
170168
Direct
171-
defaultDirectChainConfig
172-
{ networkId = Mainnet
173-
}
169+
(defaultDirectChainConfig & #networkId .~ Mainnet)
174170
}
175171

176172
it "parses --contestation-period option as a number of seconds" $ do
@@ -184,18 +180,14 @@ spec = parallel $
184180
defaultRunOptions
185181
{ chainConfig =
186182
Direct
187-
defaultDirectChainConfig
188-
{ contestationPeriod = UnsafeContestationPeriod 1
189-
}
183+
(defaultDirectChainConfig & #contestationPeriod .~ UnsafeContestationPeriod 1)
190184
}
191185
["--contestation-period", "300s"]
192186
`shouldParse` Run
193187
defaultRunOptions
194188
{ chainConfig =
195189
Direct
196-
defaultDirectChainConfig
197-
{ contestationPeriod = UnsafeContestationPeriod 300
198-
}
190+
(defaultDirectChainConfig & #contestationPeriod .~ UnsafeContestationPeriod 300)
199191
}
200192
it "parses --deposit-deadline option as a number of seconds" $ do
201193
shouldNotParse ["--deposit-deadline", "abc"]
@@ -208,18 +200,14 @@ spec = parallel $
208200
defaultRunOptions
209201
{ chainConfig =
210202
Direct
211-
defaultDirectChainConfig
212-
{ depositDeadline = UnsafeDepositDeadline 1
213-
}
203+
(defaultDirectChainConfig & #depositDeadline .~ UnsafeDepositDeadline 1)
214204
}
215205
["--deposit-deadline", "300s"]
216206
`shouldParse` Run
217207
defaultRunOptions
218208
{ chainConfig =
219209
Direct
220-
defaultDirectChainConfig
221-
{ depositDeadline = UnsafeDepositDeadline 300
222-
}
210+
(defaultDirectChainConfig & #depositDeadline .~ UnsafeDepositDeadline 300)
223211
}
224212

225213
it "parses --mainnet flag" $ do
@@ -228,9 +216,7 @@ spec = parallel $
228216
defaultRunOptions
229217
{ chainConfig =
230218
Direct
231-
defaultDirectChainConfig
232-
{ networkId = Mainnet
233-
}
219+
(defaultDirectChainConfig & #networkId .~ Mainnet)
234220
}
235221

236222
it "parses --node-socket as a filepath" $
@@ -239,9 +225,7 @@ spec = parallel $
239225
defaultRunOptions
240226
{ chainConfig =
241227
Direct
242-
defaultDirectChainConfig
243-
{ nodeSocket = "foo.sock"
244-
}
228+
(defaultDirectChainConfig & #nodeSocket .~ "foo.sock")
245229
}
246230

247231
it "parses --cardano-signing-key option as a filepath" $
@@ -250,9 +234,7 @@ spec = parallel $
250234
defaultRunOptions
251235
{ chainConfig =
252236
Direct
253-
defaultDirectChainConfig
254-
{ cardanoSigningKey = "./alice-cardano.sk"
255-
}
237+
(defaultDirectChainConfig & #cardanoSigningKey .~ "./alice-cardano.sk")
256238
}
257239

258240
it "parses --cardano-verification-key option as a filepath" $
@@ -261,9 +243,7 @@ spec = parallel $
261243
defaultRunOptions
262244
{ chainConfig =
263245
Direct
264-
defaultDirectChainConfig
265-
{ cardanoVerificationKeys = ["./alice-cardano.vk"]
266-
}
246+
(defaultDirectChainConfig & #cardanoVerificationKeys .~ ["./alice-cardano.vk"])
267247
}
268248

269249
it "parses --ledger-protocol-parameters-file as a filepath" $

0 commit comments

Comments
 (0)