I'm writing a Haskell JSON API, and I'd like to write some tests. The thing is really IO heavy, so I think it makes the most sense to write some functional tests: (Add a Foo, see if /foos/ returns it), etc.
I've read about QuickCheck of course, but it seems to focus on testing pure code.
How should I write/run functional tests that need to test an API? If it matters, I'm using Scotty/WAI. Although an example would be great, a good couple links and some advice would be fine.