---
title: "createTestServer"
source: "https://github.com/remix-run/remix/blob/8905f3943706e1f53696ab83e70a84873cabfc90/packages/node-fetch-server/src/lib/test-server.ts#L30"
---

# createTestServer

## Summary

Starts an `http.Server` on a random localhost port that delegates to the
given fetch-style handler. Intended for integration tests — pair the
returned [`TestServer`](/node-fetch-server/test/interface/TestServer/) with `t.serve()` from `@remix-run/test` to
drive it from a Playwright `Page`.

## Signature

```ts
function createTestServer(
  handler: (request: Request) => Response | Promise<Response>,
): Promise<TestServer>

```

## Parameters

### `handler`

A fetch-style `(request) => Response | Promise<Response>`
  (e.g. `router.fetch` from `@remix-run/fetch-router`)

## Returns

A promise that resolves to the running [`TestServer`](/node-fetch-server/test/interface/TestServer/).