{"id":39760819,"url":"https://github.com/constructive-io/supabase-test-suite","last_synced_at":"2026-01-18T11:37:45.934Z","repository":{"id":318087209,"uuid":"1069947650","full_name":"constructive-io/supabase-test-suite","owner":"constructive-io","description":"A friendly playground for building and validating Supabase Row‑Level Security (RLS)","archived":false,"fork":false,"pushed_at":"2025-12-25T00:17:57.000Z","size":1712,"stargazers_count":18,"open_issues_count":2,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-04T03:31:41.622Z","etag":null,"topics":["supabase"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/constructive-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-05T00:04:30.000Z","updated_at":"2025-12-25T00:18:01.000Z","dependencies_parsed_at":"2025-10-05T02:41:54.709Z","dependency_job_id":"f3a3e287-6e2b-4d2b-b057-c5fea957c84e","html_url":"https://github.com/constructive-io/supabase-test-suite","commit_stats":null,"previous_names":["pyramation/supabase-test","launchql/supabase-test","launchql/supabase-test-suite","constructive-io/supabase-test-suite"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/constructive-io/supabase-test-suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fsupabase-test-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fsupabase-test-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fsupabase-test-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fsupabase-test-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/constructive-io","download_url":"https://codeload.github.com/constructive-io/supabase-test-suite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fsupabase-test-suite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["supabase"],"created_at":"2026-01-18T11:37:45.841Z","updated_at":"2026-01-18T11:37:45.905Z","avatar_url":"https://github.com/constructive-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Supabase Test Suite\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003cimg height=\"250\" src=\"https://raw.githubusercontent.com/constructive-io/supabase-test-suite/refs/heads/main/docs/img/logos.svg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003ca href=\"https://github.com/constructive-io/supabase-test-suite/actions/workflows/ci.yml\"\u003e\n    \u003cimg height=\"20\" src=\"https://github.com/constructive-io/supabase-test-suite/actions/workflows/ci.yml/badge.svg\" /\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://github.com/constructive-io/supabase-test-suite/blob/main/LICENSE\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nA friendly playground for building and validating Supabase Row-Level Security (RLS). It includes real-world examples, migrations, and a comprehensive test suite you can run locally.\n\nBuilt with [`supabase-test`](https://www.npmjs.com/package/supabase-test) — a Supabase-optimized version of [`pgsql-test`](https://www.npmjs.com/package/pgsql-test) for instant, isolated Postgres test databases with automatic rollbacks and Supabase defaults.\n\n## Features\n\n- 🔐 **RLS Policy Testing** - Real-world examples with users and products tables\n- 🧪 **Comprehensive Test Suite** - End-to-end tests against native Supabase schemas\n- 🐘 **Zero-Setup Postgres** - Supabase CLI local stack for instant development\n- ⚡ **Jest Integration** - Fast, isolated tests with automatic rollbacks\n- 🚀 **CI/CD Ready** - GitHub Actions workflows for automated testing\n- 🧩 **Modular Architecture** - Reusable schema packages you can extend\n\n## Quick Start\n\n```bash\n# Initialize and start local Supabase stack\nnpx supabase init\nnpx supabase start\n\n# Install dependencies\npnpm install\n\n# Run tests in watch mode\ncd packages/hello-world\npnpm test:watch\n```\n\n## Repository Structure\n\nThis is a pgpm workspace combining `pnpm` and `pgpm` for modular Postgres packages:\n\n- **`packages/supabase`** - Supabase-focused SQL, tests, and helpers\n- **`packages/hello-world`** - Demo extension showcasing RLS with users/products\n\n## Testing\n\nRun tests in different modes:\n\n```bash\n# Run all tests from root\npnpm test\n\n# Watch mode for specific package\ncd packages/hello-world\npnpm test:watch\n\n# Run Supabase package tests\ncd packages/supabase\npnpm test:watch\n```\n\n## Requirements\n\n- Node.js 20+\n- pnpm 10+\n- Supabase CLI 2+\n\n## Troubleshooting\n\nIf you encounter connection issues, set your environment variables:\n\n```bash\nexport PGPORT=54322\nexport PGHOST=localhost\nexport PGUSER=postgres\nexport PGPASSWORD=postgres\n```\n\nCommon issues:\n- Ensure Supabase services are running (`npx supabase status`)\n- Check that ports match those shown by `npx supabase start`\n- Use Node.js 20+ to avoid compatibility issues\n\n## Education and Tutorials\n\n 1. 🚀 [Quickstart: Getting Up and Running](https://constructive.io/learn/quickstart)\nGet started with modular databases in minutes. Install prerequisites and deploy your first module.\n\n 2. 📦 [Modular PostgreSQL Development with Database Packages](https://constructive.io/learn/modular-postgres)\nLearn to organize PostgreSQL projects with pgpm workspaces and reusable database modules.\n\n 3. ✏️ [Authoring Database Changes](https://constructive.io/learn/authoring-database-changes)\nMaster the workflow for adding, organizing, and managing database changes with pgpm.\n\n 4. 🧪 [End-to-End PostgreSQL Testing with TypeScript](https://constructive.io/learn/e2e-postgres-testing)\nMaster end-to-end PostgreSQL testing with ephemeral databases, RLS testing, and CI/CD automation.\n\n 5. ⚡ [Supabase Testing](https://constructive.io/learn/supabase)\nUse TypeScript-first tools to test Supabase projects with realistic RLS, policies, and auth contexts.\n\n 6. 💧 [Drizzle ORM Testing](https://constructive.io/learn/drizzle-testing)\nRun full-stack tests with Drizzle ORM, including database setup, teardown, and RLS enforcement.\n\n 7. 🔧 [Troubleshooting](https://constructive.io/learn/troubleshooting)\nCommon issues and solutions for pgpm, PostgreSQL, and testing.\n\n## Credits\n\n**🛠 Built by the [Constructive](https://constructive.io) team — creators of modular Postgres tooling for secure, composable backends. If you like our work, contribute on [GitHub](https://github.com/constructive-io).**\n\n## Disclaimer\n\nAS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.\n\nNo developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstructive-io%2Fsupabase-test-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconstructive-io%2Fsupabase-test-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstructive-io%2Fsupabase-test-suite/lists"}