@@ -26,6 +26,8 @@ import Test.QuickCheck (arbitrary)
26import Test.QuickCheck.Gen
26import Test.QuickCheck.Gen
27import Test.QuickCheck.Property
27import Test.QuickCheck.Property
29+-- | Note: 'schemaGen' may 'error', if schema type is not specified,
30+-- and cannot be inferred.
29schemaGen :: Definitions Schema -> Schema -> Gen Value
31schemaGen :: Definitions Schema -> Schema -> Gen Value
30schemaGen _ schema
32schemaGen _ schema
31 | Just cases <- schema ^. paramSchema . enum_ = elements cases
33 | Just cases <- schema ^. paramSchema . enum_ = elements cases
@@ -34,7 +36,8 @@ schemaGen defns schema =
34 Nothing ->
36 Nothing ->
35 case inferSchemaTypes schema of
37 case inferSchemaTypes schema of
36 [ inferredType ] -> schemaGen defns (schema & type_ ?~ inferredType)
38 [ inferredType ] -> schemaGen defns (schema & type_ ?~ inferredType)
39+ -- Gen is not MonadFail
37− _ -> fail "unable to infer schema type"
40+ _ -> error "unable to infer schema type"
38 Just SwaggerBoolean -> Bool <$> elements [True, False]
41 Just SwaggerBoolean -> Bool <$> elements [True, False]
39 Just SwaggerNull -> pure Null
42 Just SwaggerNull -> pure Null
40 Just SwaggerNumber
43 Just SwaggerNumber