Live тест план – Lager Guru
Последна актуализация: <допиши дата при промяна>
1) Обща цел
- Потвърждаване, че ролите и основните потоци работят (admin, driver, worker)
- Създаване на потребители (e‑mail покани), вход, роли, CRUD на зони/пратки
- Базова проверка на PWA (install и offline кеш само в build)
2) Предварителни условия
- .env.local е зададен:
bash
VITE_SUPABASE_URL=...
VITE_SUPABASE_PUBLISHABLE_KEY=...- Supabase → Authentication → Redirect URLs:
http://localhost:8080(development server)http://localhost:8080/login(login page)
- Админът има роля
adminвpublic.user_roles.
3) Сценарии – Създаване на потребители
- Влез като админ → Admin → Benutzerverwaltung
- „Neuen Benutzer einladen”
- E‑mail: тестов (напр. driver@test.local)
- Роля:
Fahrer - Изпрати
- Провери в Supabase → Auth → Users, че е създаден (или след приемане на поканата)
- Ако потребителят вече съществува, ролята се задава автоматично от UI; иначе можеш ръчно от падащото меню след като се появи в списъка.
Бележки:
- Поканите са Magic Link (signInWithOtp). Добави домейна в Redirect URLs.
- За директно добавяне можеш Supabase → Auth → Add user, после роля в
user_roles.
4) Сценарии – Роли и достъп
- Admin (/admin):
- Вижда табове: Aufträge, Zonen, Benutzer
- Може да създава/редактира зони и пратки
- Driver (/driver):
- Вижда назначените му пратки
- Може да сменя статус само на собствените (
pending → in-transit → completed)
- Worker (/worker):
- Провери дали достъпът е разрешен според текущия UI (по избор)
- Public Dashboard (/dashboard):
- Данните за зони/пратки са read‑only и публични (RLS: select за anon, authenticated)
5) Сценарии – Данни
- Зони (Admin → Zonen):
- Създай Zone A (code A, цвят по избор, % капацитет)
- Редакция на зона
- Пратки (Admin → Aufträge):
- Създай Shipment: от Zone A към Zone B, приоритет, шофьор (по избор)
- Потвърди, че се вижда в Public Dashboard и при съответния Fahrer
6) Вход/изход
- Login (/login):
- Вход чрез парола (ако има) или Magic Link (e‑mail поканата)
- Logout: от хедъра (admin/driver)
- След login ролята се зарежда от
user_roles(AuthContext →fetchUserRole)
7) PWA
- Dev: SW е активиран (
devOptions.enabled: true) за тестване на мобилни устройства/таблети - Prod:
npm run build && npm run preview→ инсталация на PWA - Проверка: DevTools → Application → Manifest / Service Workers
- Мобилен тест: отвори локалния IP (http://YOUR_LOCAL_IP:8080) от телефон/таблет в същата мрежа и инсталирай като PWA
8) Трабълшутинг
- Роля липсва: задай роля в
public.user_rolesзаauth.users.id - RLS пречи: временно
disable row level securityзаuser_roles/profiles, извърши промяната, после enable - Празен екран в dev: Clear storage + Unregister SW, hard refresh
- Няма данни: увери се, че миграциите са приложени и URL/Keys са верни
9) Полезни SQL
- Залагане/смяна на роля:
sql
alter table public.user_roles disable row level security;
delete from public.user_roles where user_id = '<USER_ID>';
insert into public.user_roles(user_id, role) values ('<USER_ID>', 'admin');
alter table public.user_roles enable row level security;- Синхронизиране на
profilesотauth.users:
sql
insert into public.profiles (id, email)
select au.id, au.email
from auth.users au
left join public.profiles p on p.id = au.id
where p.id is null;10) Чеклист за утрешния тест
- [ ] Админ роля валидирана
- [ ] Redirect URLs настроени (локален IP и домейн, ако има)
- [ ] Създаден Fahrer и приел поканата
- [ ] Поне 1 зона и 1 пратка създадени
- [ ] Driver вижда пратката и сменя статус успешно
- [ ] Public Dashboard визуализира зони/пратки
- [ ] PWA тест: от мобилно/таблет → инсталирай като PWA, тествай offline кеш
- [ ] Мобилна версия: responsive UI работи добре на телефон/таблет
Ще обновяваме този документ при промени и нови сценарии.