> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sertifikasitrainer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Browser testing (Playwright)

> Login otomatis admin/user, reuse session, dan cek console setelah edit frontend.

Repo punya helper Playwright untuk QA manual dan verifikasi setelah perubahan UI. Kredensial **tidak** di-commit — disimpan di `.playwright-auth/` (gitignored).

## Akun tersedia

| Role      | Email                          | Session name | Landing setelah login |
| --------- | ------------------------------ | ------------ | --------------------- |
| **admin** | `admin@sertifikasitrainer.com` | `thub-admin` | `/admin/home`         |
| **user**  | `ujangas1908@gmail.com`        | `thub-user`  | `/b1-trainer`         |

Kredensial lengkap: `.playwright-auth/credentials.env`

## Setup pertama

```bash theme={null}
# Login + simpan session state
./scripts/pw-login.sh admin
./scripts/pw-login.sh user
```

## Reuse session (disarankan)

```bash theme={null}
# Buka browser sudah login
./scripts/pw-use.sh admin
./scripts/pw-use.sh user /order

# Snapshot halaman
playwright-cli -s=thub-admin snapshot
```

Kalau redirect ke `/auth/login` → session expired. Jalankan `pw-login.sh` sekali lagi.

## Target URL

Default di `credentials.env`:

```bash theme={null}
PW_BASE_URL=https://beta.sertifikasitrainer.com
```

Override satu kali:

```bash theme={null}
PW_BASE_URL='https://app.sertifikasitrainer.com' ./scripts/pw-login.sh admin
```

Production Cloudflare: `https://app.sertifikasitrainer.com`

## Kapan pakai role mana

| Task                                         | Role         |
| -------------------------------------------- | ------------ |
| `/admin/*`, batch, tier, kelas, Mux, peserta | **admin**    |
| Workspace, kelas peserta, AI hub, profile    | **user**     |
| Shared component / auth / routing            | **keduanya** |

## Wajib setelah edit frontend

Setiap perubahan UI/route/hook/style:

```bash theme={null}
playwright-cli -s=thub-user goto http://localhost:5757/your-page
playwright-cli -s=thub-user snapshot

# Cek console error
cat .playwright-cli/console-*.log 2>/dev/null | tail -30
```

Console harus bersih sebelum claim "done". Red flags:

* `does not provide an export named 'default'`
* `Cannot read properties of undefined`
* `Module not found`

## Urutan state-load

Saat pakai `playwright-cli` manual:

1. Buka context dulu
2. `state-load` session
3. Baru `goto`

Helper script sudah mengurus urutan ini.

<Warning>
  Jangan echo password atau session token ke chat/log.
</Warning>

## Halaman terkait

* [Dev lokal](/guides/local-dev)
* [Contributing](/guides/contributing)
