Skip to content

Commit 2263678

Browse files
Merge #4187
4187: Fix `TraceNodeIsLeader` JSON parser r=Jasagredo a=Jasagredo The log messages are formatted slightly different in each case. In particular: ``` {...,"data":{...,"kind":"TraceAddBlockEvent.AddedToCurrentChain","...},...} ``` versus ``` {"...,"data":{...,"val":{"kind":"TraceNodeIsLeader","slot":85}},...} ``` Also the parser was intended to only get the events with the kind `TraceNodeIsLeader`. Co-authored-by: Javier Sagredo <[email protected]>
2 parents c33c06f + d30cc61 commit 2263678

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

cardano-testnet/src/Test/Assert.hs

+6-6
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ module Test.Assert
1010
, getRelevantLeaderSlots
1111
) where
1212

13-
import Control.Applicative ((<*>))
14-
import Control.Monad (Monad (..))
13+
import Control.Monad (Monad (..), fail)
1514
import Control.Monad.IO.Class (MonadIO)
1615
import Control.Monad.Trans.Reader (ReaderT)
1716
import Control.Monad.Trans.Resource (ResourceT)
@@ -86,10 +85,11 @@ data TraceNodeIsLeader = TraceNodeIsLeader
8685
} deriving (Eq, Show)
8786

8887
instance FromJSON TraceNodeIsLeader where
89-
parseJSON = Aeson.withObject "TraceNodeIsLeader" $ \v ->
90-
TraceNodeIsLeader
91-
<$> v .: "kind"
92-
<*> v .: "slot"
88+
parseJSON = Aeson.withObject "TraceNodeIsLeader" $ \v -> do
89+
k <- v .: "val" >>= (.: "kind")
90+
if k == "TraceNodeIsLeader"
91+
then TraceNodeIsLeader k <$> (v .: "val" >>= (.: "slot"))
92+
else fail "Not the right kind"
9393

9494
instance FromJSON Kind where
9595
parseJSON = Aeson.withObject "Kind" $ \v ->

0 commit comments

Comments
 (0)