mirror of
https://github.com/LukasKanka/api_test.git
synced 2026-11-11 06:34:36 +01:00
refactor: restructure to monorepo with backends and apiTest
- Move web/backend to backends/potter-api - Move web/frontend to backends/potter-api/frontend - Add root package.json with npm workspaces - Update README.md with monorepo navigation - Update .github/workflows/api-tests.yml for dynamic test discovery - Update bruno_test_scenario.md paths - Fix .gitignore to allow JSON data files - Add three new AI tests in apiTest/PotterAPI/AI/ Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
2e185b47ef
commit
d0cdabbf11
57 files changed
+292
-35
No files matched your search
@@ -1,22 +1,201 @@
|
||||
## Automated API Testing (Bruno)
|
||||
# 🧪 API Test Playground
|
||||
|
||||
Automatické testování REST API je postaveno na nástroji [Bruno](https://www.usebruno.com/). Testovací kolekce je uložena přímo v repozitáři ve složce `apiTest/PotterAPI` a je verzována společně s kódovým základem.
|
||||
**Monorepo pro testování různých API služeb pomocí [Bruno](https://www.usebruno.com/) a Vibe agentů.**
|
||||
|
||||
### Lokální spuštění testů
|
||||
Tento projekt slouží jako **playground** pro vývoj, testování a výuku API testování. Obsahuje backendové služby, frontendové aplikace a komplexní testovací kolekce.
|
||||
|
||||
Testy lze spouštět přímo z grafického rozhraní aplikace Bruno, nebo přes příkazovou řádku (CLI).
|
||||
---
|
||||
|
||||
#### 1. Pomocí Bruno GUI
|
||||
1. Otevřete aplikaci Bruno.
|
||||
2. Zvolte **Open Collection** a vyberte složku `apiTest/PotterAPI` v tomto repozitáři.
|
||||
3. Spusťte jednotlivé požadavky nebo celou kolekci přes **Runner**.
|
||||
## 🗺️ Rozcestník
|
||||
|
||||
#### 2. Pomocí Bruno CLI
|
||||
Ujistěte se, že běží lokální server (standardně na `http://127.0.0.1:3000`), a spusťte:
|
||||
| Služba | Backend | Frontend | Testy | Dokumentace |
|
||||
|--------|---------|----------|-------|--------------|
|
||||
| **PotterAPI** | [`backends/potter-api`](./backends/potter-api) | [`backends/potter-api/frontend`](./backends/potter-api/frontend) | [`apiTest/PotterAPI`](./apiTest/PotterAPI) | [bruno_test_scenario.md](./backends/potter-api/bruno_test_scenario.md) |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Rychlý start
|
||||
|
||||
### 1️⃣ Inicializace projektu
|
||||
|
||||
```bash
|
||||
# Spuštění testů v terminálu
|
||||
npx @usebruno/cli run apiTest/PotterAPI -r
|
||||
# Klonování repozitáře
|
||||
git clone <repo-url>
|
||||
cd api_test
|
||||
|
||||
# Spuštění testů s vygenerováním HTML reportu
|
||||
npx @usebruno/cli run apiTest/PotterAPI -r --reporter-html report.html
|
||||
# Instalace všech závislostí (využívá npm workspaces)
|
||||
npm run setup
|
||||
```
|
||||
|
||||
### 2️⃣ Spuštění backendů
|
||||
|
||||
```bash
|
||||
# Spuštění všech backendů
|
||||
npm run start:backends
|
||||
|
||||
# Nebo jednotlivě
|
||||
npm run start:potter-api
|
||||
```
|
||||
|
||||
Backend PotterAPI bude dostupný na **`http://localhost:3000`**.
|
||||
|
||||
### 3️⃣ Spuštění frontendů
|
||||
|
||||
```bash
|
||||
# Spuštění PotterAPI frontend (Vue.js)
|
||||
npm run start:potter-fe
|
||||
```
|
||||
|
||||
Frontend bude dostupný na **`http://localhost:8080`**.
|
||||
|
||||
### 4️⃣ Spuštění testů
|
||||
|
||||
```bash
|
||||
# Spuštění všech testů
|
||||
npm run test:all
|
||||
|
||||
# Spuštění pouze PotterAPI testů
|
||||
npm run test:potter
|
||||
|
||||
# Spuštění testů s watch módem (automatické opakování)
|
||||
npm run test:watch
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 Struktura monorepa
|
||||
|
||||
```
|
||||
api_test/
|
||||
├── README.md # Tento soubor (rozcestník)
|
||||
│
|
||||
├── package.json # Root package.json (npm workspaces)
|
||||
│
|
||||
├── backends/ # Backendové služby
|
||||
│ └── potter-api/ # PotterAPI
|
||||
│ ├── app.js # Hlavní Express.js aplikace
|
||||
│ ├── routes/ # API routy
|
||||
│ ├── controllers/ # Kontrolery
|
||||
│ ├── frontend/ # Frontend (Vue.js)
|
||||
│ │ ├── public/ # Statické soubory
|
||||
│ │ ├── src/ # Zdrojové kódy
|
||||
│ │ └── package.json # Frontend závislosti
|
||||
│ ├── bruno_test_scenario.md # Dokumentace pro Bruno
|
||||
│ └── README.md # Dokumentace PotterAPI
|
||||
│
|
||||
├── apiTest/ # Testovací kolekce (Bruno)
|
||||
│ └── PotterAPI/ # Testy pro PotterAPI
|
||||
│ ├── GET/ # GET požadavky
|
||||
│ ├── POST/ # POST požadavky
|
||||
│ └── AI/ # AI-specifické testy
|
||||
│
|
||||
├── .github/ # GitHub konfigurace
|
||||
│ └── workflows/ # CI/CD pipeline
|
||||
│ └── api-tests.yml # Automativké testování
|
||||
│
|
||||
└── .vibe/ # Vibe agenti (budoucí)
|
||||
└── agents/ # AI asistenti
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Nástroje
|
||||
|
||||
### Bruno
|
||||
**Moderní alternativa k Postmanu** – Open-source nástroj pro testování API.
|
||||
|
||||
- **GUI**: Otevřete `apiTest/` v Bruno aplikaci
|
||||
- **CLI**: Použijte `npx @usebruno/cli run <cesta> -r`
|
||||
- **Dokumentace**: [usebruno.com](https://www.usebruno.com/)
|
||||
|
||||
### Vibe CLI
|
||||
**AI asistent pro vývoj** – Pomáhá s psaním testů, dokumentací a delegací úkolů.
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Vibe Agenti *(plánováno)*
|
||||
|
||||
| Agent | Účel | Vyvolání |
|
||||
|-------|-------|----------|
|
||||
| **API Test Assistant** | Pomoc s psaním a spouštěním API testů | `/api-tester` |
|
||||
| **Bruno Expert** | Specialista na Bruno CLI a testovací scénáře | `/bruno-expert` |
|
||||
| **Learning Guide** | Výuka API testování pro nováčky | `/learning-guide` |
|
||||
|
||||
---
|
||||
|
||||
## 📝 Pridávání nové API služby
|
||||
|
||||
Chcete přidat novou API službu? Postupujte takto:
|
||||
|
||||
### 1. Vytvořte backend
|
||||
```bash
|
||||
mkdir -p backends/<nova-sluzba>
|
||||
cd backends/<nova-sluzba>
|
||||
npm init -y
|
||||
# Přidejte svůj backend kód
|
||||
```
|
||||
|
||||
### 2. Vytvořte testy
|
||||
```bash
|
||||
mkdir -p apiTest/<nova-sluzba>
|
||||
# Přidejte Bruno testovací kolekce (.yml soubory)
|
||||
```
|
||||
|
||||
### 3. Aktualizujte dokumentaci
|
||||
- Přidejte řádek do tabulky v tomto README
|
||||
- Vytvořte `backends/<nova-sluzba>/README.md`
|
||||
- Případně vytvořte `backends/<nova-sluzba>/bruno_test_scenario.md`
|
||||
|
||||
### 4. Testujte
|
||||
```bash
|
||||
npm run test:all # Spustí všechny testy včetně nových
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 CI/CD Pipeline
|
||||
|
||||
**Automatické testování** při každém pushu na `main` nebo `master` větvi:
|
||||
|
||||
- ✅ Spuštění backendu
|
||||
- ✅ Čekání na inicializaci serveru
|
||||
- ✅ Spuštění všech Bruno testů
|
||||
- ✅ Reportování výsledků
|
||||
|
||||
Soubor: [`.github/workflows/api-tests.yml`](./.github/workflows/api-tests.yml)
|
||||
|
||||
---
|
||||
|
||||
## 📄 Dokumentace
|
||||
|
||||
- [PotterAPI – Testovací scénáře](./backends/potter-api/bruno_test_scenario.md) – Detailní průvodce testováním PotterAPI
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Přispívání
|
||||
|
||||
1. Forkněte repozitář
|
||||
2. Vytvořte feature branch (`git checkout -b feature/nova-funkce`)
|
||||
3. Commitněte změny (`git commit -m 'Přidána nová funkce'`)
|
||||
4. Pushněte na větev (`git push origin feature/nova-funkce`)
|
||||
5. Vytvořte Pull Request
|
||||
|
||||
---
|
||||
|
||||
## 📞 Kontakt & Podpora
|
||||
|
||||
- **Issues**: [GitHub Issues](https://github.com/kankys/api_test/issues)
|
||||
- **Diskuse**: Použijte GitHub Discussions
|
||||
|
||||
---
|
||||
|
||||
## 🏆 Technologie
|
||||
|
||||
| Technologie | Účel |
|
||||
|------------|-------|
|
||||
| **Node.js** | Backend runtime |
|
||||
| **Express.js** | Web framework pro PotterAPI |
|
||||
| **Vue.js** | Frontend framework |
|
||||
| **Bruno** | API testování |
|
||||
| **npm Workspaces** | Správa monorepa |
|
||||
| **GitHub Actions** | CI/CD |
|
||||
Reference in new issue
Block a user