Airbyte Postgres Source E2E Tests
airbytehq/airbyte
Starts a local PostgreSQL 16 container, loads SQL fixtures and runs the Airbyte spec, check, discover and read commands against a chosen source-postgres image.
Guides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions.
$ npx skills add prest/prest --skill prest-integration-tests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install prest/prest prest-integration-tests --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/prest/prest.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/prest-integration-tests .claude/skills/prest-integration-tests && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "prest-integration-tests" agent skill from https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-tests into .claude/skills/prest-integration-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prest-integration-tests", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-testsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add prest/prest --skill prest-integration-tests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install prest/prest prest-integration-tests --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prest/prest.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/prest-integration-tests .agents/skills/prest-integration-tests && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "prest-integration-tests" agent skill from https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-tests into .agents/skills/prest-integration-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prest-integration-tests", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add prest/prest --skill prest-integration-tests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install prest/prest prest-integration-tests --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prest/prest.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/prest-integration-tests .cursor/skills/prest-integration-tests && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "prest-integration-tests" agent skill from https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-tests into .cursor/skills/prest-integration-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prest-integration-tests", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/prest/prest.git --path .cursor/skills/prest-integration-tests--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add prest/prest --skill prest-integration-tests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install prest/prest prest-integration-tests --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prest/prest.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/prest-integration-tests .gemini/skills/prest-integration-tests && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "prest-integration-tests" agent skill from https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-tests into .gemini/skills/prest-integration-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prest-integration-tests", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install prest/prest prest-integration-testsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add prest/prest --skill prest-integration-tests -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/prest/prest.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/prest-integration-tests .github/skills/prest-integration-tests && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "prest-integration-tests" agent skill from https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-tests into .github/skills/prest-integration-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prest-integration-tests", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add prest/prest --skill prest-integration-tests -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install prest/prest prest-integration-tests --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prest/prest.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/prest-integration-tests .opencode/skills/prest-integration-tests && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "prest-integration-tests" agent skill from https://github.com/prest/prest/tree/main/.cursor/skills/prest-integration-tests into .opencode/skills/prest-integration-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "prest-integration-tests", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
prest-integration-testsGuides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions.
The central rule is that integration tests must be human-readable: a reader should understand the scenario, the expected outcome and why each request matters without decoding URLs or status codes. A reference test file serves as the gold standard and `examples.md` shows patterns side by side. Shared helpers and test utilities sit under `integration/`, and two make targets run the suites: `make test-integration-postgres`, also aliased as `test-integration`, and `make test-integration-timescaledb`, which covers only Timescale-specific tests and does not re-run shared suites.
When writing, the agent chooses the `suites/` folder for wire-compatible HTTP tests or an engine-specific folder, documents every request, prefers deployed-server helpers to in-process servers and validates with the matching make target and workflow. In sequential tests, one to three comments precede every request: what is tested, the expected outcome and, when it is not obvious, why. Long request calls are wrapped for scanning, and local `go test` without Compose skips network tests when the test URL variables are unset.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f00df6e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
makegoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Integration Tests for pREST loads about 1.1k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 382 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from prest/prest at commit f00df6e, republished under its MIT licence (© prest). 382 words, ~1,139 tokens.
.claude/skills/prest-integration-tests/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.MUST invariants also live in .cursor/rules/integration-tests.mdc and
.cursor/rules/integration-layout.mdc (this skill keeps examples + checklists).
Integration tests must be human-readable. A reader should understand the scenario, expected outcome, and why each request matters without decoding URLs or status codes alone.
Gold standard: integration/postgres/controllers/queries_database_test.go.
Side-by-side patterns: examples.md.
integration/
helpers/ # shared URL/auth/setup
testutils/ # shared HTTP helpers
suites/ # wire-compatible HTTP E2E (Postgres integration workflow)
postgres/ # Postgres-only tests + docker-compose.yml
timescaledb/ # Timescale-specific E2E + docker-compose.yml| Target | Workflow | Compose | Packages |
|---|---|---|---|
make test-integration-postgres (alias: test-integration) | .github/workflows/test-integration.yml | integration/postgres/docker-compose.yml | ./integration/suites/... ./integration/postgres/... |
make test-integration-timescaledb | .github/workflows/test-integration-timescaledb.yml | integration/timescaledb/docker-compose.yml | ./integration/timescaledb/... only |
Workflows run in parallel. The Timescale workflow does not re-run shared
suites/ or Postgres packages — only Timescale-specific E2E.
Local go test without Compose skips network tests when PREST_*_TEST_URL is unset.
For adding a new SQL engine, see rule/skill sql-database-support (analysis + where-to-change).
suites/ for wire-compatible HTTP (Postgres job);
postgres/ / timescaledb/ (etc.) for engine- or stack-specific tests.make test-integration-* target (and the matching
GitHub workflow for that DB).Before every HTTP request, add 1–3 comments covering:
Template:
// Test the <endpoint or scenario>
// Expected to succeed|fail and <outcome summary>.
// <optional: why / which path param or auth rule matters>
helpers.DoAuthRequest(...)Also:
DoRequest / DoAuthRequest calls across lines for scanability."QueriesDBExecuteWithDB").Skip per-request block comments when each case has a clear description
field. Descriptions must state scenario + expected outcome in plain language.
"Get tables with custom where invalid clause""case 1", "ok", "err"Log or surface the description in the loop (t.Log(tc.description) or
t.Run(tc.description, …)).
| Do | Don't |
|---|---|
helpers.ServerURL, QueriesServerURL, AuthServerURL, MultiClusterServerURL | httptest.NewServer for standard controller routes |
testutils.DoRequest / helpers.DoAuthRequest | Call postgres.Load() or live DB outside integration/ |
Dedicated workflow + compose per DB (test-integration-<db>.yml) | Fold a new DB into the Postgres compose or workflow |
Controller behavior changes need unit tests and integration coverage
(suites/ and/or the relevant DB folder).
Before finishing a new or edited integration test:
integration/suites/ or integration/<db>/description is self-explanatorypostgres.Load() outside integration/© prest, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .cursor/skills/prest-integration-tests of prest/prest.
Open the folder on GitHubat commit f00df6e
Integration Tests for pREST next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Integration Tests for pREST this skillprest/prest | 4.6k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Airbyte Postgres Source E2E Testsairbytehq/airbyte | 22k | — | ~2.5k | Automated safety check: Pass | Custom licence | |
| Postgres CDC E2E Test Harnessairbytehq/airbyte | 22k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Create Testrundeck/rundeck | 6.3k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Cb Build TestBlkLeg/CircuitBreaker | 201 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Run Testsansible-collections/community.postgresql | 144 | — | ~1k | Automated safety check: Pass | Custom licence |
airbytehq/airbyte
Starts a local PostgreSQL 16 container, loads SQL fixtures and runs the Airbyte spec, check, discover and read commands against a chosen source-postgres image.
airbytehq/airbyte
Reproduces PostgreSQL logical-decoding CDC behavior for Airbyte's source-postgres connector on a local backend, with CDC fixtures, a catalog and smoke case scripts.
rundeck/rundeck
Create backend tests for Rundeck (unit, API, functional). An agent skill from rundeck/rundeck.
BlkLeg/CircuitBreaker
How Circuit Breaker is built, tested, packaged, and kept secret-safe — the make dev/verify/test targets, the PostgreSQL integration test database and its fixtures, the mono Docker image and native…
ansible-collections/community.postgresql
Runs and writes tests (sanity, unit, integration) for the community.postgresql Ansible collection using ansible-test.
weave-os/router
Local test harness for the Weave router: a docker compose stack plus codex exec runs that confirm how Codex requests are routed, translated and marked.
prest/prest
Guides classifying, gap-analyzing and scaffolding support for a new SQL database in pREST, from Postgres-compatible variants to entirely new dialects.
Works with
Categories
Guides writing and reviewing pREST Docker-based integration tests so every HTTP request is explained by step comments or table-driven descriptions. The central rule is that integration tests must be human-readable: a reader should understand the scenario, the expected outcome and why each request matters without decoding URLs or status codes.md` shows patterns side by side.
Integration Tests for pREST fits situations like: adding or editing integration tests under integration/ in pREST; reviewing integration tests for readable request documentation; choosing between the shared suites folder and an engine-specific folder.
Run `npx skills add prest/prest --skill prest-integration-tests -a claude-code`. Or copy the skill folder (.cursor/skills/prest-integration-tests in prest/prest) into .claude/skills/prest-integration-tests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add prest/prest --skill prest-integration-tests -a codex`. Or copy the skill folder (.cursor/skills/prest-integration-tests in prest/prest) into .agents/skills/prest-integration-tests in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add prest/prest --skill prest-integration-tests -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/prest-integration-tests, .gemini/skills/prest-integration-tests, .github/skills/prest-integration-tests and .opencode/skills/prest-integration-tests in your project.
Going by SKILL.md and its folder, Integration Tests for pREST needs the command-line tools its instructions call (make and go). Our summary lists: Go; Docker and Docker Compose; `make`.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Integration Tests for pREST is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Integration Tests for pREST: Airbyte Postgres Source E2E Tests (airbytehq/airbyte, 22k stars), Postgres CDC E2E Test Harness (airbytehq/airbyte, 22k stars), Create Test (rundeck/rundeck, 6.3k stars) and Cb Build Test (BlkLeg/CircuitBreaker, 201 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
prest (a GitHub organization) maintains it in prest/prest, which has 4,623 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 8, 2026.
Source: prest/prest on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.