v0.5.2: multi-company, isAdmin fix, appVersion, docs
This commit is contained in:
@@ -0,0 +1,104 @@
|
||||
# Тесты: мульти-компания (2026-06-02)
|
||||
|
||||
> Запускать против `https://white.nodejsk8s.dev.nubes.ru`
|
||||
> Куки сохраняются между запросами (использовать `-c jar.txt -b jar.txt`)
|
||||
|
||||
## 1. Логин под мульти-компанией
|
||||
|
||||
```bash
|
||||
# Получить CSRF-токен и логин-форму
|
||||
curl -s -c jar.txt https://white.nodejsk8s.dev.nubes.ru/login > /dev/null
|
||||
|
||||
# Извлечь CSRF-токен
|
||||
CSRF=$(curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/login | grep -oP 'name="_csrf" value="\K[^"]+')
|
||||
|
||||
# Залогиниться как "multi"
|
||||
curl -s -b jar.txt -c jar.txt \
|
||||
-X POST https://white.nodejsk8s.dev.nubes.ru/login \
|
||||
-d "user=multi&_csrf=$CSRF" \
|
||||
-D - | head -1
|
||||
# Ожидаем: HTTP/1.1 302 → /
|
||||
|
||||
# Проверить что сессия содержит allClientIds
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -c 'WZ01325'
|
||||
# Ожидаем: >0 (активная компания в интерфейсе)
|
||||
```
|
||||
|
||||
## 2. Переключатель компаний в UI
|
||||
|
||||
```bash
|
||||
# Страница должна содержать переключатель (<select name="switchTo">)
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -c 'switchTo'
|
||||
# Ожидаем: >0
|
||||
|
||||
# Должны быть обе компании в options
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -o 'WZ0[0-9]*'
|
||||
# Ожидаем: WZ01325 и WZ02001
|
||||
|
||||
# Переключиться на WZ02001
|
||||
curl -s -b jar.txt -c jar.txt \
|
||||
https://white.nodejsk8s.dev.nubes.ru/?switchTo=WZ02001 \
|
||||
> /dev/null
|
||||
|
||||
# Проверить что активная компания — WZ02001
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -c 'WZ02001'
|
||||
# Ожидаем: >0
|
||||
```
|
||||
|
||||
## 3. Добавление записи в активную компанию
|
||||
|
||||
```bash
|
||||
# Создать запись в WZ02001 (после переключения на неё)
|
||||
CSRF=$(curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -oP 'name="_csrf" value="\K[^"]+')
|
||||
|
||||
curl -s -b jar.txt -c jar.txt \
|
||||
-X POST https://white.nodejsk8s.dev.nubes.ru/add \
|
||||
-d "value=8.8.8.8/32&comment=multi-test&_csrf=$CSRF" \
|
||||
-D - | head -1
|
||||
# Ожидаем: HTTP/1.1 302
|
||||
|
||||
# Проверить что запись появилась в WZ02001
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -c '8.8.8.8'
|
||||
# Ожидаем: >0
|
||||
```
|
||||
|
||||
## 4. Проверка изоляции компаний
|
||||
|
||||
```bash
|
||||
# Переключиться обратно на WZ01325
|
||||
curl -s -b jar.txt -c jar.txt \
|
||||
https://white.nodejsk8s.dev.nubes.ru/?switchTo=WZ01325 \
|
||||
> /dev/null
|
||||
|
||||
# Запись 8.8.8.8 из WZ02001 НЕ должна быть видна в WZ01325
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -c '8.8.8.8'
|
||||
# Ожидаем: 0
|
||||
```
|
||||
|
||||
## 5. API Bearer-тест (опционально)
|
||||
|
||||
```bash
|
||||
# Выпустить mock JWT с clientid через запятую
|
||||
# (требует ручной JWT через /dev-login или issueMockToken)
|
||||
# Затем:
|
||||
curl -s -H "Authorization: Bearer <mock-jwt>" \
|
||||
https://white.nodejsk8s.dev.nubes.ru/api/v1/entries | jq .
|
||||
# Ожидаем: записи для первой компании (WZ01325)
|
||||
```
|
||||
|
||||
## 6. Негативные тесты
|
||||
|
||||
```bash
|
||||
# Переключение на несуществующую компанию — игнорируется
|
||||
curl -s -b jar.txt -c jar.txt \
|
||||
https://white.nodejsk8s.dev.nubes.ru/?switchTo=WZ99999 \
|
||||
> /dev/null
|
||||
|
||||
# Должен остаться на WZ01325
|
||||
curl -s -b jar.txt https://white.nodejsk8s.dev.nubes.ru/ | grep -c 'WZ01325'
|
||||
# Ожидаем: >0
|
||||
|
||||
# Одиночная компания (test, не multi) — переключателя быть не должно
|
||||
# Залогиниться как test и проверить:
|
||||
# grep -c 'switchTo' → ожидаем 0
|
||||
```
|
||||
Reference in New Issue
Block a user