1.2 KiB
1.2 KiB
CRUD Testing Summary (React Native + Jest + Supabase)
What these tests are about
Tests verify app behavior, not Supabase itself.
They check:
- User interaction works
- Correct database functions are called
- Navigation happens after actions
CRUD Breakdown
CREATE
- User inputs data
insert()is called- App navigates back
Flow: User → type → press create → insert() → router.back()
READ
- Data is fetched (
select().eq().single()) - State updates
- UI renders correct content
UPDATE
- Existing data is loaded
- User edits input
update().eq()is called with correct values- Navigation happens
DELETE
- User presses delete
Alert.alert()is triggered- Confirm button (
onPress) is manually called in test delete().eq()runs- Navigation happens
Why mocking is used
- No real database calls
- Faster tests
- Full control over success/error cases
- No side effects (no real data created/deleted)
Mock rule
The mock must match the real call chain:
Real: from → update → eq → select → single
Mock: from() → update() → eq() → select() → single()
If not → errors like: ".select is not a function"