Skip to content

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) Сценарии – Създаване на потребители

  1. Влез като админ → Admin → Benutzerverwaltung
  2. „Neuen Benutzer einladen”
    • E‑mail: тестов (напр. driver@test.local)
    • Роля: Fahrer
    • Изпрати
  3. Провери в Supabase → Auth → Users, че е създаден (или след приемане на поканата)
  4. Ако потребителят вече съществува, ролята се задава автоматично от 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 работи добре на телефон/таблет

Ще обновяваме този документ при промени и нови сценарии.

Released under Commercial License