servant-client generates actions that run directly in a ClientM monad. There should be some kind of story about the right way to integrate servant-client with HMock.
One idea is to write a new library, such as servant-classy-client, that uses TH to generate an MTL-style class from a servant API type.
Another idea is to generate a server implementation that delegates everything to mockMethod using withMockT, and then allow the tests to serialize everything but point them at an in-process HTTP server. So you'd expect the server methods, not the client methods. This requires generalizing Mockable a but so that it doesn't require an MTL-style class, but I want to do that anyway.
servant-client
generates actions that run directly in a ClientM monad. There should be some kind of story about the right way to integrateservant-client
with HMock.One idea is to write a new library, such as
servant-classy-client
, that uses TH to generate an MTL-style class from a servant API type.Another idea is to generate a server implementation that delegates everything to
mockMethod
usingwithMockT
, and then allow the tests to serialize everything but point them at an in-process HTTP server. So you'dexpect
the server methods, not the client methods. This requires generalizingMockable
a but so that it doesn't require an MTL-style class, but I want to do that anyway.