Products

Testy bazy (pgTAP)

Testy schematu, polityk RLS i funkcji w pgTAP — z panelu, CLI, API i na gałęziach podglądu z GitHuba.

This page is available in Polish only for now. The commands, code and API calls below are the same in every language — an English translation is on its way. Open the Polish page

Testy pisze się w pgTAP — tym samym formacie co supabase test db. Każdy plik działa w transakcji, która jest zawsze wycofywana, więc testy mogą wstawiać i usuwać dane bez śladu.

-- supabase/tests/profiles_test.sql
select plan(3);
select has_table('public', 'profiles', 'tabela istnieje');
select col_is_pk('public', 'profiles', 'id', 'id jest kluczem głównym');
select policies_are('public', 'profiles', array['Profile są publiczne']);
select * from finish();

Gdzie uruchamiać

  • Panel: Baza danych → Testy bazy — edytor plików, „Uruchom bez zapisu”, historia uruchomień z wynikami asercji.
  • CLI: hostbase test db uruchamia supabase/tests/**/*.sql (albo wskazany plik/katalog; --saved — testy z panelu). Kod wyjścia 1 przy nieudanych testach — gotowe do CI.
  • Management API: POST /api/v1/projects/{ref}/database/tests/run z {"files":[{"name":"a.sql","sql":"..."}]} lub pustym body (testy z panelu). Odpowiedź zawiera ok, liczniki i wyniki per plik.
  • GitHub: gdy repozytorium ma supabase/tests/*.sql, testy uruchamiają się na gałęzi podglądowej każdego PR; wynik trafia do statusu HostBase Tests i komentarza PR.