Skip to content

Commit

Permalink
make core unit test pass
Browse files Browse the repository at this point in the history
  • Loading branch information
paweljakubas committed Jul 29, 2021
1 parent 2c73e2c commit 06de6d5
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 0 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 33 additions & 0 deletions lib/core/test/unit/Cardano/Wallet/Api/Malformed.hs
Expand Up @@ -52,6 +52,7 @@ import Prelude
import Cardano.Wallet.Api.Types
( ApiAddressData
, ApiAddressInspectData
, ApiBalanceTransactionPostData
, ApiBytesT (..)
, ApiConstructTransactionData
, ApiMaintenanceActionPostData
Expand Down Expand Up @@ -1270,6 +1271,38 @@ instance Malformed (BodyParam ApiSignTransactionPostData) where
)
]

instance Malformed (BodyParam ApiBalanceTransactionPostData) where
malformed = jsonValid ++ jsonInvalid
where
jsonInvalid = first BodyParam <$>
[ ("1020344", "Error in $: parsing Cardano.Wallet.Api.Types.ApiBalanceTransactionPostData(ApiBalanceTransactionPostData) failed, expected Object, but encountered Number")
, ("\"hello\"", "Error in $: parsing Cardano.Wallet.Api.Types.ApiBalanceTransactionPostData(ApiBalanceTransactionPostData) failed, expected Object, but encountered String")
, ("{\"transaction\": \"\", \"random\"}", msgJsonInvalid)
, ("{\"transaction\": \"lah\"}", "Error in $.transaction: Parse error. Expecting Base64-encoded format.")
, ("{\"transaction\": 1020344}", "Error in $.transaction: parsing 'Base64 ByteString failed, expected String, but encountered Number")
, ("{\"transaction\": { \"body\": 1020344 }}", "Error in $.transaction: parsing 'Base64 ByteString failed, expected String, but encountered Object")
]
jsonValid = first (BodyParam . Aeson.encode) <$>
[
( [aesonQQ|
{ "transaction": #{validSealedTxHex}
}|]
, "Error in $.transaction: Parse error. Expecting Base64-encoded format."
)
, ( [aesonQQ|
{ "transaction": "cafecafe",
"extra": "hello"
}|]
, "Error in $: parsing Cardano.Wallet.Api.Types.ApiBalanceTransactionPostData(ApiBalanceTransactionPostData) failed, unknown fields: ['extra']"
)
, ( [aesonQQ|
{ "transaction": #{validSealedTxBase64},
"extra": "hello"
}|]
, "Error in $: parsing Cardano.Wallet.Api.Types.ApiBalanceTransactionPostData(ApiBalanceTransactionPostData) failed, unknown fields: ['extra']"
)
]

instance Malformed (BodyParam (PostTransactionOldData ('Testnet pm))) where
malformed = jsonValid ++ jsonInvalid
where
Expand Down
15 changes: 15 additions & 0 deletions lib/core/test/unit/Cardano/Wallet/Api/TypesSpec.hs
Expand Up @@ -62,6 +62,7 @@ import Cardano.Wallet.Api.Types
, ApiAddressDataPayload (..)
, ApiAddressInspect (..)
, ApiAsset (..)
, ApiBalanceTransactionPostData (..)
, ApiBase64
, ApiBlockInfo (..)
, ApiBlockReference (..)
Expand Down Expand Up @@ -493,6 +494,7 @@ spec = parallel $ do
jsonRoundtripAndGolden $ Proxy @(ApiConstructTransaction ('Testnet 0))
jsonRoundtripAndGolden $ Proxy @ApiMultiDelegationAction
jsonRoundtripAndGolden $ Proxy @ApiSignTransactionPostData
jsonRoundtripAndGolden $ Proxy @ApiBalanceTransactionPostData
jsonRoundtripAndGolden $ Proxy @ApiSignedTransaction
jsonRoundtripAndGolden $ Proxy @(PostTransactionOldData ('Testnet 0))
jsonRoundtripAndGolden $ Proxy @(PostTransactionFeeOldData ('Testnet 0))
Expand Down Expand Up @@ -1008,6 +1010,13 @@ spec = parallel $ do
}
in
x' === x .&&. show x' === show x
it "ApiBalanceTransactionPostData" $ property $ \x ->
let
x' = ApiBalanceTransactionPostData
{ transaction = transaction (x :: ApiBalanceTransactionPostData)
}
in
x' === x .&&. show x' === show x
it "PostMintBurnAssetData" $ property $ \x ->
let
x' = PostMintBurnAssetData
Expand Down Expand Up @@ -1917,6 +1926,9 @@ instance Arbitrary a => Arbitrary (AddressAmount a) where
instance Arbitrary ApiSignTransactionPostData where
arbitrary = ApiSignTransactionPostData <$> arbitrary <*> arbitrary

instance Arbitrary ApiBalanceTransactionPostData where
arbitrary = ApiBalanceTransactionPostData <$> arbitrary

instance Arbitrary (PostTransactionOldData t) where
arbitrary = PostTransactionOldData
<$> arbitrary
Expand Down Expand Up @@ -2478,6 +2490,9 @@ instance ToSchema ApiTxMetadata where
instance ToSchema ApiSignTransactionPostData where
declareNamedSchema _ = declareSchemaForDefinition "ApiSignTransactionPostData"

instance ToSchema ApiBalanceTransactionPostData where
declareNamedSchema _ = declareSchemaForDefinition "ApiBalanceTransactionPostData"

instance ToSchema ApiSignedTransaction where
-- fixme: tests don't seem to like allOf
declareNamedSchema _ = declareSchemaForDefinition "ApiSignedTransaction"
Expand Down

0 comments on commit 06de6d5

Please sign in to comment.