dockest logo

dockest

Enrichment pending
erikengervall/dockest

Docker + Jest integration testing for Node.js

GraphCanon updated today · GitHub synced today

110
Stars
17
Forks
50
Open issues
2
Watchers
4mo
Last push
TypeScript MITCreated Dec 23, 2018

Trust & integrity

Full report
Maintenance
Slowing (145d since push)
As of today · Source: github_public_v1
Provenance
Not a fork · Personal account
As of today · Source: github_public_v1
Security (OSV)
Not scanned
As of today · Source: none

Public GitHub metadata and optional OSV dependency scans. Signals, not a guarantee. Trust methodology.

Overview

Docker + Jest integration testing for Node.js

Capability facts

MCP server
No MCP server detected

Source: repo_scan · Jul 11, 2026

Languages
typescript, javascript

Source: github.language+package.json · Jul 11, 2026

Categories

Tags

README

System requirements

In order to run Dockest, there's a few system requirements:

  • Dockest uses Jest's programmatic CLI and requires Jest v20.0.0 or newer to work
  • Docker
  • Docker Compose ("On desktop systems like Docker Desktop for Mac and Windows, Docker Compose is included as part of those desktop installs.")

Install

yarn add --dev dockest

---

# docker-compose.yml
version: '3.8'

services:
  myRedis:
    image: redis:5.0.3-alpine
    ports:
      - published: 6379
        target: 6379
// dockest.ts
import { Dockest } from 'dockest';

const dockest = new Dockest();

// Specify the services from the Compose file that should be included in the integration test
const dockestServices = [
  {
    serviceName: 'myRedis', // Must match a service in the Compose file
  },
];

dockest.run(dockestServices);

docker-compose.yml

version: '3.8'

services: postgres: # (1) image: postgres:9.6-alpine ports: - published: 5432 target: 5432 environment: # (2) POSTGRES_DB: baby POSTGRES_USER: dont POSTGRES_PASSWORD: hurtme


```ts
// dockest.ts
import { Dockest } from 'dockest';

const { run } = new Dockest();

run([
  {
    serviceName: 'postgres', // must match (1)
    readinessCheck: async ({
      defaultReadinessChecks: { postgres },
      dockerComposeFileService: {
        environment: { POSTGRES_DB, POSTGRES_USER }, // must match (2)
      },
    }) => postgres({ POSTGRES_DB, POSTGRES_USER }),
  },
]);

defaultReadinessChecks.redis

The default readiness check for Redis is based on this image which is plug-and-play.


---

# docker-compose.yml
version: '3.8'

services:
  redis: # (1)
    image: redis:5.0.3-alpine
    ports:
      - published: 6379
        target: 6379
// dockest.ts
import { Dockest } from 'dockest';

const { run } = new Dockest();

run([
  {
    serviceName: 'redis', // must match (1)
    readinessCheck: ({ defaultReadinessChecks: { redis } }) => redis(),
  },
]);

defaultReadinessChecks.web [WIP]

Requires wget. The image would most likely be a self-built web service.

The exact use case should be fleshed out.

// dockest.ts
import { Dockest } from 'dockest';

const { run } = new Dockest();

run([
  {
    serviceName: 'web', // must match (1)
    readinessCheck: async ({ defaultReadinessChecks: { web } }) => web(),
  },
]);