on master help sign in
write readme
commitef7915fc9774fcffb793a47442e5a9e2516cfe3a authorMark Wotton <mwotton@gmail.com> dateSat 6 Jun 2020, 12:52 (6 years ago) parentfa3b073
2 files changed+24−1
README.md+23 TODO.md+1−1
README.md+23
@@ -1,3 +1,26 @@
11# roboservant
22
3+Automatically fuzz your servant apis in a contextually-aware way.
4+
35![CI](https://github.com/mwotton/roboservant/workflows/CI/badge.svg)
6+
7+# why?
8+
9+Servant gives us a lot of information about what a server can do. We
10+use this information to generate arbitrarily long request/response
11+sessions and verify properties that should hold over them.
12+
13+# why not servant-quickcheck?
14+
15+[servant-quickcheck](https://hackage.haskell.org/package/servant-quickcheck)
16+is a great package and I've learned a lot from it. Unfortunately,
17+there's a lot of the state space it can't explore: modern webapps are
18+full of pointer-like structures, whether they're URLs or database
19+keys/uuids. servant-quickcheck demands that you be able to generate
20+these without context via Arbitrary: good luck exploring an API that
21+requires you to generate just the right UUID to hit non-trivial code.
22+
23+roboservant avoids this by using
24+[quickcheck-state-machine](https://github.com/advancedtelematic/quickcheck-state-machine#readme),
25+which models the dynamic state in such a way that we can use results
26+of previous calls.
TODO.md+1−1
@@ -1,8 +1,8 @@
11DONE
22- basic setup
33- extract response types from the api
4+- proper readme
45
56TODO
6−- proper readme
77- some way to select a random endpoint to run from a given Server.
88- hook up quickcheck-state-machine/hedgehog