TestClient

final case class TestClient(behavior: Ref[HttpApp[Any, Throwable]], serverSocketBehavior: Ref[SocketApp[Any]]) extends Client

Enables tests that use a client without needing a live Server

Value parameters:
behavior

Contains the user-specified behavior that takes the place of the usual Server

Companion:
object
trait Serializable
trait Product
trait Equals
trait ZClient[Any, Body, Throwable, Response]
class Object
trait Matchable
class Any

Value members

Concrete methods

def addHandler[R](handler: PartialFunction[Request, ZIO[R, Throwable, Response]]): ZIO[R, Nothing, Unit]

Adds a flexible handler for requests that are submitted by test cases

Adds a flexible handler for requests that are submitted by test cases

Type parameters:
R

Environment of the new handler's effect.

Value parameters:
handler

New behavior to be added to the TestClient

Example:
  TestClient.addHandler{case request  if request.method == Method.GET => ZIO.succeed(Response.ok)}
def addRequestResponse(expectedRequest: Request, response: Response): ZIO[Any, Nothing, Unit]

Adds an exact 1-1 behavior

Adds an exact 1-1 behavior

Value parameters:
expectedRequest

The request that will trigger the response

response

The response to be returned when a user submits the response

Example:
  TestClient.addRequestResponse(Request.get(URL.root), Response.ok)
def installSocketApp[Env1](app: Http[Any, Throwable, WebSocketChannelEvent, Unit]): ZIO[Env1, Nothing, Unit]

Inherited methods

final def contramap[In2](f: In2 => Body): ZClient[Env, In2, Err, Out]
Inherited from:
ZClient
final def contramapZIO[Env1, Err1 >: Throwable, In2](f: In2 => ZIO[Env1, Err1, Body]): ZClient[Env1, In2, Err1, Out]
Inherited from:
ZClient
final def dieOn(f: Throwable => Boolean)(implicit ev1: IsSubtypeOfError[Throwable, Throwable], ev2: CanFail[Throwable], trace: Trace): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def get(pathSuffix: String)(body: Body)(implicit trace: Trace): ZIO[Env, Err, Out]
Inherited from:
ZClient
final def header(key: String, value: String): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def host(host: String): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def map[Out2](f: Response => Out2): ZClient[Env, In, Err, Out2]
Inherited from:
ZClient
final def mapZIO[Env1, Err1 >: Throwable, Out2](f: Response => ZIO[Env1, Err1, Out2]): ZClient[Env1, In, Err1, Out2]
Inherited from:
ZClient
final def path(segment: String): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def port(port: Int): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
Inherited from:
Product
final def put(pathSuffix: String)(body: Body)(implicit trace: Trace): ZIO[Env, Err, Out]
Inherited from:
ZClient
def query(key: String, value: String): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def refineOrDie[Err2](pf: PartialFunction[Throwable, Err2])(implicit ev1: IsSubtypeOfError[Throwable, Throwable], ev2: CanFail[Throwable], trace: Trace): ZClient[Env, In, Err2, Out]
Inherited from:
ZClient
final def request(request: Request)(implicit ev: Body <:< Body, trace: Trace): ZIO[Env, Err, Out]
Inherited from:
ZClient
final def request(method: Method, pathSuffix: String, body: Body)(implicit trace: Trace): ZIO[Env, Err, Out]
Inherited from:
ZClient
final def retry[Env1](policy: Schedule[Env1, Throwable, Any]): ZClient[Env1, In, Err, Out]
Inherited from:
ZClient
final def scheme(scheme: Scheme): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def socket[Env1](url: String, app: SocketApp[Env1], headers: Headers)(implicit trace: Trace): ZIO[Env1 & Scope, Err, Out]
Inherited from:
ZClient
final def socket[Env1](pathSuffix: String)(app: SocketApp[Env1])(implicit trace: Trace): ZIO[Env1 & Scope, Err, Out]
Inherited from:
ZClient
final def ssl(ssl: ClientSSLConfig): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def uri(uri: URI): ZClient[Env, In, Err, Out]
Inherited from:
ZClient
final def url(url: URL): ZClient[Env, In, Err, Out]
Inherited from:
ZClient

Concrete fields

val headers: Headers
val pathPrefix: Path
val queries: QueryParams
val schemeOption: Option[Scheme]
val sslConfig: Option[ClientSSLConfig]