Roadmap: #1
Problem
There is no integration test that runs generated pog adapter code against an actual PostgreSQL database. The SQLite integration test (integration_test/sqlite_test.sh) exercises real CRUD operations against an in-memory SQLite database, but no equivalent exists for PostgreSQL.
Evidence
integration_test/run.sh only runs sqlite_test.sh and compile_test.sh
integration_test/compile_test.sh verifies that pog adapter code compiles, but never runs it
test/codegen_test.gleam tests pog adapter code at the string-generation level only
Expected
Create integration_test/postgresql_test.sh that:
- Starts or connects to a PostgreSQL instance (e.g., via Docker or CI service)
- Generates native pog adapter code from a test schema and queries
- Creates a temporary Gleam project with the generated code
- Runs CRUD operations against the real database
- Verifies correct results (insert, select one, select many, update, delete)
- Tests PostgreSQL-specific features (RETURNING clause, ENUM types, UUID)
This can use a CI PostgreSQL service container in GitHub Actions.
Why This Matters
The pog adapter is a significant amount of generated code (~1000 lines) that has never been validated against a real PostgreSQL database. Bugs in query call construction, parameter encoding, or result decoding would go undetected.
Roadmap: #1
Problem
There is no integration test that runs generated pog adapter code against an actual PostgreSQL database. The SQLite integration test (
integration_test/sqlite_test.sh) exercises real CRUD operations against an in-memory SQLite database, but no equivalent exists for PostgreSQL.Evidence
integration_test/run.shonly runssqlite_test.shandcompile_test.shintegration_test/compile_test.shverifies that pog adapter code compiles, but never runs ittest/codegen_test.gleamtests pog adapter code at the string-generation level onlyExpected
Create
integration_test/postgresql_test.shthat:This can use a CI PostgreSQL service container in GitHub Actions.
Why This Matters
The pog adapter is a significant amount of generated code (~1000 lines) that has never been validated against a real PostgreSQL database. Bugs in query call construction, parameter encoding, or result decoding would go undetected.