mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 18:19:43 +00:00
feat(backend): add standalone data plane
Replace the Supabase application data plane with the Node/PostgreSQL API, migrate mobile, admin, web, and MCP callers, add controlled cutover tooling, and define hardened Dokploy infrastructure.
This commit is contained in:
1 parent
01bb8225ae
commit
006761d3b0
294 files changed
+16259
-6138
No files matched your search
+8
-4
@@ -1,9 +1,13 @@
|
||||
# System E2E
|
||||
|
||||
Tests assume `scripts/dev-local.sh up` is already running. Execute with
|
||||
`npm run verify:e2e`; the wrapper supplies local-only Supabase credentials and
|
||||
refuses remote hosts. Playwright retains traces, screenshots, and videos on
|
||||
failure under ignored output directories.
|
||||
`npm run verify:e2e`; application data must use the loopback standalone API and
|
||||
PostgreSQL. Playwright retains traces, screenshots, and videos on failure under
|
||||
ignored output directories.
|
||||
|
||||
Native flows live under `maestro/` and run with `npm run test:mobile:e2e` after an
|
||||
iOS or Android build is installed.
|
||||
iOS or Android build is installed. `login-screen-smoke.yaml` is credential-free.
|
||||
`login-smoke.yaml` requires `E2E_EMAIL` and `E2E_PASSWORD` for a disposable,
|
||||
onboarding-complete user in the designated hosted non-production Supabase Auth
|
||||
project, with a matching standalone database profile. Never use production Auth,
|
||||
a subscriber account, or a service-role key for local/E2E acceptance.
|
||||
@@ -0,0 +1,19 @@
|
||||
appId: com.sauci.app
|
||||
name: Standalone-backend build reaches the Auth login screen
|
||||
---
|
||||
- launchApp:
|
||||
clearState: true
|
||||
- waitForAnimationToEnd
|
||||
- tapOn:
|
||||
point: "50%,25%"
|
||||
- tapOn:
|
||||
text: "Continue"
|
||||
optional: true
|
||||
- tapOn:
|
||||
point: "94%,44%"
|
||||
- extendedWaitUntil:
|
||||
visible: "Explore intimacy together"
|
||||
timeout: 30000
|
||||
- assertVisible: "Sauci"
|
||||
- assertVisible: "Password"
|
||||
- takeScreenshot: "evidence/self-hosted-backend/ios-auth-login-current"
|
||||
@@ -1,14 +1,43 @@
|
||||
appId: com.sauci.app
|
||||
name: Local fixture login reaches authenticated app
|
||||
name: Hosted Auth fixture reaches the standalone API-backed app
|
||||
---
|
||||
- launchApp:
|
||||
clearState: true
|
||||
- waitForAnimationToEnd
|
||||
- tapOn:
|
||||
point: "50%,25%"
|
||||
- tapOn:
|
||||
text: "Continue"
|
||||
optional: true
|
||||
- tapOn:
|
||||
point: "94%,44%"
|
||||
- extendedWaitUntil:
|
||||
visible: "Explore intimacy together"
|
||||
timeout: 30000
|
||||
- tapOn: "Password"
|
||||
- tapOn: "Enter your email"
|
||||
- inputText: "e2e.alex@example.test"
|
||||
- eraseText
|
||||
- inputText: "${E2E_EMAIL}"
|
||||
- tapOn: "Enter your password"
|
||||
- inputText: "Sauci-e2e-only-2026!"
|
||||
- eraseText
|
||||
- setClipboard: "${E2E_PASSWORD}"
|
||||
- pasteText
|
||||
- tapOn: "Sauci"
|
||||
- scrollUntilVisible:
|
||||
element:
|
||||
text: "Sign In"
|
||||
direction: DOWN
|
||||
- tapOn: "Sign In"
|
||||
- extendedWaitUntil:
|
||||
notVisible: "Sign In"
|
||||
timeout: 15000
|
||||
- tapOn:
|
||||
text: "Not Now"
|
||||
optional: true
|
||||
- extendedWaitUntil:
|
||||
visible: "Discover"
|
||||
timeout: 15000
|
||||
- assertVisible: "Adventure & Travel"
|
||||
- assertVisible: "Quality Time"
|
||||
- assertNotVisible: "No packs available"
|
||||
- takeScreenshot: "evidence/self-hosted-backend/ios-authenticated-api-current"
|
||||
Reference in new issue
Block a user