Purescript bindings for the Enzyme library.
Before you write any unit tests with Enzyme, make sure to configure the Enzyme Adapter and the Global DOM if you are planning to use Full wrappers as opposed to Shallow ones.
Main.purs
import Effect (Effect)
import Effect.Aff (launchAff_)
import Enzyme (configure, withGlobalDOM)
import Prelude
import Test.Spec.Reporter.Console (consoleReporter)
import Test.Spec.Runner (runSpec)
main :: Effect Unit
main =
do
configure
withGlobalDOM
launchAff_ $ runSpec [ consoleReporter ]
do
calculatorSpec
todoSpec
enzymeSpec
Enzyme.purs
import Effect.Class (liftEffect)
import Enzyme (children, length, mount)
import Prelude
import React.DOM (button', div', span') as React
import Test.Spec (Spec, describe, it)
import Test.Spec.Assertions (shouldEqual)
spec :: Spec Unit
spec =
do
describe "Traversing"
do
it "counts the number of children nodes"
do
node <-
liftEffect $ mount $ React.div' [ React.span' [ ], React.button' [ ] ]
count <- liftEffect $ children node >>= length
count `shouldEqual` 2
There are examples for every function in this library inside the test folder of this repository.