Execution graphs for elm-test. Define a graph of what operations happen and roughly in what order, and we'll generate total orderings from your graph, and execute them. Hopefully, we'll find some errors this way.
An Action to be performed at this step in the graph. Expect is used to run an elm-test expectation against a at this point in the execution. Modify is used to modify a in some way.
A graph of Actions to be taken and the partial order to take them in. See drathier/elm-graph for details on modifying the graph.
A fuzztest that uses an execution graph to define what it should do, and then randomizes execution order through the graph.
For example, consider this execution graph:
We could, for example, execute it in this order:
But who in their right mind would think of writing a test-case like that? Good thing we have this tool to find some of the really obscure bugs.
The graph above can be modeled using this code (which also has a bunch of expectations mid-way to make narrowing in on an error easier, if there is one):