diff --git a/marlowe-runtime/test/Language/Marlowe/Runtime/Transaction/ApiSpec.hs b/marlowe-runtime/test/Language/Marlowe/Runtime/Transaction/ApiSpec.hs index f2886c1257..d6a95d978c 100644 --- a/marlowe-runtime/test/Language/Marlowe/Runtime/Transaction/ApiSpec.hs +++ b/marlowe-runtime/test/Language/Marlowe/Runtime/Transaction/ApiSpec.hs @@ -14,12 +14,14 @@ import qualified Data.Aeson as Aeson import qualified Data.Aeson.Key as Aeson.Key import qualified Data.Aeson.KeyMap as Aeson.KeyMap import Data.Coerce (coerce) +import Data.Foldable (find) import Data.Map (Map) import qualified Data.Map as Map import Data.Maybe (maybeToList) import qualified Data.Maybe as Maybe import Data.String (fromString) import Data.Text (Text) +import qualified Data.Text as Text import qualified Data.Text.Encoding as Text.Encoding import qualified Data.Text.Encoding.Base16 as Base16 import qualified Data.Vector as Vector @@ -105,12 +107,16 @@ validityProp = Gen.checkCoverage $ cip25MetadataFileDetailsGenSoundnessProp :: Gen.Property cip25MetadataFileDetailsGenSoundnessProp = Gen.checkCoverage $ - Gen.forAll cip25MetadataFileDetailsJSONRelationGen \(cip25MetadataFileDetails, json) -> - Gen.cover 1.0 (null cip25MetadataFileDetails) "no file details" $ - Gen.cover 80.0 (not $ null cip25MetadataFileDetails) "some file details" do + Gen.forAll cip25MetadataFileDetailsJSONRelationGen \(fds, json) -> + Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> Text.null name) fds) "some file details has empty name" $ + Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> not $ Text.null name) fds) "some file details has name" $ + Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> Text.null mediaType) fds) "some file details has empty mediaType" $ + Gen.cover 25.0 (Maybe.isJust $ find (\CIP25MetadataFileDetails{..} -> not $ Text.null mediaType) fds) "some file details has mediaType" $ + Gen.cover 1.0 (null fds) "no file details" $ + Gen.cover 80.0 (not $ null fds) "some file details" do let document = Aeson.encode json - Aeson.encode cip25MetadataFileDetails `shouldBe` document - -- Aeson.decode document `shouldBe` Just cip25MetadataFileDetails + Aeson.encode fds `shouldBe` document + -- Aeson.decode document `shouldBe` Just fds cip25MetadataFileDetailsJSONRelationGen :: Gen ([CIP25MetadataFileDetails], Aeson.Value) cip25MetadataFileDetailsJSONRelationGen = do