úÎQ^N<      !"#$%&'()*+,-./0123456789:;None(23468=EKM+$A data type for tests against forms.(The error paths that should be populated4The value the form should take (and should be valid)9Factory instances allow you to easily generate test data.|Essentially, you specify a default way of constructing a data type, and allow certain parts of it to be modified (via the  data structure).An example follows: ÿdata Foo = Foo Int newtype FooFields = FooFields (IO Int) instance Factory App Foo FooFields where fields = FooFields randomIO save f = liftIO f >>= saveFoo . Foo1 main = do create id :: SnapHspecM App Foo create (const $ FooFields (return 1)) :: SnapHspecM App Foo ™Internal state used to share site initialization across tests, and to propogate failures. Understanding it is completely unnecessary to use the library.&The fields it contains, in order, are: ŠResult Main handler Startup state Startup state Session state Before handler (runs before each eval) After handler (runs after each eval). gThe main monad that tests run inside of. This allows both access to the application (via requests and %#) and to running assertions (like . or 6).oThe result of making requests against your application. Most assertions act against these types (for example, ,, 4, etc).The way to run a block of   tests within an <T test suite. This takes both the top level handler (usually `route routes`, where routesJ are all the routes for your site) and the site initializer (often named appB), and a block of tests. A test suite can have multiple calls to }, though each one will cause the site initializer to run, which is often a slow operation (and will slow down test suites).·This allows you to change the default handler you are running requests against within a block. This is most likely useful for setting request state (for example, logging a user in).%This performs a similar operation to  but in the context of  ! (which is needed if you need to %Q, produce values, and hand them somewhere else (so they can't be created within f).*Evaluate a Handler action after each test.+Evaluate a Handler action before each test.Runs a DELETE requestRuns a GET request.-Runs a GET request, with a set of parameters. !A helper to construct parameters.!5Creates a new POST request, with a set of parameters."oCreates a new PUT request, with a set of parameters, with a default type of "application/x-www-form-urlencoded"#7Creates a new PUT request with a configurable MIME/type$^Restricts a response to matches for a given CSS selector. Does nothing to non-Html responses.%8Runs an arbitrary stateful action from your application.&oRecords a test Success or Fail. Only the first Fail will be recorded (and will cause the whole block to Fail).'lAsserts that a given stateful action will produce a specific different result after an action has been run.("Asserts that two values are equal.)&Asserts that two values are not equal.*Asserts that the value is True.+>Asserts that the value is not True (otherwise known as False).,OAsserts that the response is a success (either Html, or Other with status 200).-.Asserts that the response is not a normal 200..(Asserts that the response is a NotFound./,Asserts that the response is not a NotFound.0(Asserts that the response is a redirect.1,Asserts that the response is not a redirect.2fAsserts that the response is a redirect, and thet the url it redirects to starts with the given path.3ÁAsserts that the response is not a redirect to a given path. Note that it can still be a redirect for this assertion to succeed, the path it redirects to just can't start with the given path.4CAssert that a response (which should be Html) has a given selector.5LAssert that a response (which should be Html) doesn't have a given selector.6IAsserts that the response (which should be Html) contains the given text.7QAsserts that the response (which should be Html) does not contain the given text.8'Tests against digestive-functors forms.9LRuns a request (built with helpers from Snap.Test), resulting in a response.:‡Runs a request against a given handler (often the whole site), with the given state. Returns any triggered exception, or the response.;hEvaluates a given handler with the given state. Returns any triggered exception, or the value produced.?  Pairs of parameter and value.!"#$%&'()*+,-./012345=678…If the form should succeed, Value a is what it should produce. If failing, ErrorPaths should be all the errors that are triggered.The form to runThe parameters to pass9>:;?<  !"#$%&'()*+,-./0123456789:;<  !"# $%'()*+,-./012345678 &9:;0   !"#$%&'()*+,-./012345=6789>:;?@       !"#$%&'()*+,-./0123456789:;<=>?@ABChspec-snap-0.3.2.5Test.Hspec.SnapFormExpectations ErrorPaths PredicateValue HasSessiongetSessionLensFactoryfieldssavecreatereloadSnapHspecState SnapHspecM TestResponseEmptyOtherRedirectNotFoundJsonHtmlsnap modifySite modifySite' afterEval beforeEval recordSessionsessionShouldContainsessionShouldNotContaindeletegetget'paramspostputput'restrictResponseeval setResult shouldChange shouldEqualshouldNotEqual shouldBeTrueshouldNotBeTrue should200 shouldNot200 should404 shouldNot404 should300 shouldNot300 should300ToshouldNot300ToshouldHaveSelectorshouldNotHaveSelectorshouldHaveTextshouldNotHaveTextform runRequestrunHandlerSafeevalHandlerSafehspec-core-2.1.5Test.Hspec.Core.Runnerhspec haveSelector'parse200$fExampleStateT