105 lines
3.8 KiB
Markdown
105 lines
3.8 KiB
Markdown
# Тесты: мульти-компания (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
|
|
```
|