MFlow-0.4.6.0: stateful, RESTful web framework

Safe HaskellNone
LanguageHaskell98

MFlow.Forms.Test

Description

 

Synopsis

Documentation

class Generate a where #

Minimal complete definition

generate

Methods

generate :: IO a #

Instances

Generate Int # 

Methods

generate :: IO Int #

Generate Integer # 

Methods

generate :: IO Integer #

(Bounded a, Enum a) => Generate a # 

Methods

generate :: IO a #

Generate String # 

Methods

generate :: IO String #

Generate a => Generate (Maybe a) # 

Methods

generate :: IO (Maybe a) #

(Generate a, Generate b) => Generate (Maybe a, Maybe b) # 

Methods

generate :: IO (Maybe a, Maybe b) #

(Generate a, Generate b) => Generate (a, b) # 

Methods

generate :: IO (a, b) #

runTest :: [(Int, Flow)] -> IO () #

Run a list of flows with a number of simultaneous threads

inject :: MonadIO m => m b -> (Int -> b) -> m b #

Inject substitutes an expression by other. It may be used to override ask interaction with the user. It should bee used infix for greater readability:

ask something    `inject` const some other

The parameter passed is the test number if the flow has not been executed by runTest, inject return the original

ask :: (Generate a, MonadIO m, Functor m, FormInput v, Typeable v) => View v m a -> FlowM v m a #

A simulated ask that generate simulated user input of the type expected.

It forces the web page rendering, since it is monadic and can contain side effects and load effects to be tested.

it is a substitute of ask from MFlow.Forms for testing purposes.

askt :: (MonadIO m, FormInput v) => (Int -> a) -> View v m a -> FlowM v m a #

Instead of generating a result like ask, the result is given as the first parameter so it does not need a Generate instance.

It forces the web page rendering, since it is monadic so it can contain side effects and load effects to be tested.

userWidget :: (MonadIO m, Functor m, FormInput view) => Maybe String -> View view m (Maybe (String, String), Maybe String) -> View view m String #

getUser :: (FormInput view, Typeable view, Functor m, MonadIO m) => Maybe String -> View view m (Maybe (String, String), Maybe String) -> FlowM view m String #

getUserSimple :: (MonadIO m, FormInput view, Typeable view, Functor m) => FlowM view m String #

verify :: a -> (Bool, String) -> a #

a pure version of verifyM