Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,17 +82,11 @@ jobs:

- name: Install Playwright (chromium)
run: npx playwright install --with-deps chromium

- name: Setup Supabase CLI
uses: supabase/setup-cli@v1
with:
version: latest

- name: Boot Supabase + run two-client Realtime e2e (R1–R7)
run: |
supabase start
npx supabase start
./scripts/run-e2e.sh canvas-sync-regressions.spec.ts --project=chromium --workers=2

- name: Stop Supabase
if: always()
run: supabase stop || true
run: npx supabase stop || true
4 changes: 2 additions & 2 deletions scripts/run-e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
set -euo pipefail

# Auto-fetch keys from local Supabase if not already set
SUPABASE_STATUS_ENV="${SUPABASE_STATUS_ENV:-$(supabase status -o env 2>&1 || true)}"
SUPABASE_STATUS_ENV="${SUPABASE_STATUS_ENV:-$(npx supabase status -o env 2>&1 || true)}"

if [ -z "${SUPABASE_SERVICE_ROLE_KEY:-}" ]; then
# Try new-format secret key first (Supabase v2.x uses sb_secret_* instead of HS256 JWT)
Expand All @@ -27,7 +27,7 @@ if [ -z "${VITE_SUPABASE_ANON_KEY:-}" ]; then
fi

if [ -z "${SUPABASE_SERVICE_ROLE_KEY:-}" ] || [ -z "${VITE_SUPABASE_ANON_KEY:-}" ]; then
echo "ERROR: Could not fetch Supabase keys. Is local Supabase running? (supabase start)"
echo "ERROR: Could not fetch Supabase keys. Is local Supabase running? (npx supabase start)"
exit 1
fi

Expand Down
4 changes: 2 additions & 2 deletions src/components/settings/tabs/AccountSettingsTab.vue
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ const handleChangePassword = async () => {
class="form-input"
placeholder="Enter new password"
>
<button class="toggle-visibility" @click="showPassword = !showPassword">
<button class="toggle-visibility" :aria-label="showPassword ? 'Hide password' : 'Show password'" @click="showPassword = !showPassword">
<Eye v-if="!showPassword" :size="16" />
<EyeOff v-else :size="16" />
</button>
Expand Down Expand Up @@ -504,7 +504,7 @@ const handleChangePassword = async () => {
class="form-input"
@focus="(e) => (e.target as HTMLInputElement).select()"
>
<button class="toggle-visibility" :title="localApiCopied ? 'Copied!' : 'Copy'" @click="copyLocalApiToken">
<button class="toggle-visibility" :title="localApiCopied ? 'Copied!' : 'Copy'" :aria-label="localApiCopied ? 'Copied!' : 'Copy local API token'" @click="copyLocalApiToken">
<Check v-if="localApiCopied" :size="16" />
<Copy v-else :size="16" />
</button>
Expand Down
Loading