smithery.ai

test-with-postgres

Run unit tests that require PostgreSQL. Use this skill when the user wants to run tests with PostgreSQL database backend. Automatically handles checking for and configuring a PostgreSQL Docker container.

First seen Apr 5, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsBash(docker *), Bash(go *)

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,054 B
  • docs SUMMARY.md 229 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Run Unit Tests with PostgreSQL

You are helping run unit tests that require PostgreSQL.

Instructions

Starting PostgreSQL

PostgreSQL must be running before tests can execute. Use Docker to start a PostgreSQL instance:

# Check if postgres container is already running
docker ps --filter name=storj_unit_tests_postgres --format '{{.Names}}'

# If not running, start it:
docker run --rm -d -p 5433:5432 --name storj_unit_tests_postgres -e POSTGRES_PASSWORD=tmppass postgres:17

# Wait for postgres to be ready (retry until successful)
until docker exec storj_unit_tests_postgres psql -h localhost -U postgres -d postgres -c "select 1" > /dev/null 2>&1; do
  echo "Waiting for postgres server..."
  sleep 1
done

# Create test database
docker exec storj_unit_tests_postgres psql -h localhost -U postgres -c "create database teststorj;"

Alternatively, run testsuite/postgres-dev.sh which handles all setup automatically.

Running Tests

  1. If test name is provided in arguments:

- Find the package containing the test using Grep - Run the test with PostgreSQL configured

  1. If only package path is provided:

- Run all tests in that package with PostgreSQL configured

  1. Command format:
go test -v ./package/path -run TestName -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable'
  1. Report test results:

- Show whether tests passed or failed - List all subtests that ran - If tests failed, offer to help investigate the failures

  1. Stop the Docker container after tests complete:

``bash docker rm -f storjunittests_postgres ``

Common test paths

Some common test paths in the Storj codebase:

  • ./satellite/metabase - Metabase tests
  • ./satellite/metainfo - Metainfo API tests
  • ./satellite/satellitedb - Database tests

Example Usage

# Run a specific test
go test -v ./satellite/metainfo -run TestEndpoint_Object_No_StorageNodes -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable'

# Run all tests in a package
go test -v ./satellite/metabase -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable'

# Run tests with timeout
go test -v -timeout 10m ./satellite/metabase -run TestLoop -postgres-test-db 'postgres://postgres:tmppass@localhost:5433/teststorj?sslmode=disable'

Cleanup

To stop the PostgreSQL container when done:

docker rm -f storj_unit_tests_postgres

Notes

  • The container uses port 5433 to avoid conflicts with any local PostgreSQL installation on the default port 5432
  • Tests automatically create isolated test databases for each test run
  • Use STORJTESTPOSTGRES='omit' to skip PostgreSQL tests