mirror of
https://github.com/LukasKanka/api_test.git
synced 2026-11-11 06:34:36 +01:00
- 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>
91 lines
2.9 KiB
YAML
91 lines
2.9 KiB
YAML
name: Run Bruno API Tests
|
|
|
|
# Pipeline se spustí při každém pushnutí nebo Pull Requestu do hlavní větvě
|
|
on:
|
|
push:
|
|
branches: [ "main", "master" ]
|
|
pull_request:
|
|
branches: [ "main", "master" ]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
# 1. Krok: Stáhne kód z repozitáře do runneru
|
|
- name: Checkout repository code
|
|
uses: actions/checkout@v4
|
|
|
|
# 2. Krok: Připraví prostředí Node.js
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
|
|
# 3. Krok: Instalace závislostí v rootu
|
|
- name: Install root dependencies
|
|
run: |
|
|
npm install
|
|
|
|
# 4. Krok: Spuštění PotterAPI backendu
|
|
- name: Start PotterAPI Backend
|
|
run: |
|
|
cd backends/potter-api
|
|
npm install
|
|
echo "PORT=3000" > .env
|
|
node app.js > server.log 2>&1 &
|
|
|
|
# 5. Krok: Vyčkání na server pomocí obyčejné smyčky s curl
|
|
- name: Wait for PotterAPI server to be ready
|
|
run: |
|
|
echo "Čekám na naběhnutí PotterAPI serveru..."
|
|
until curl -s http://127.0.0.1:3000 > /dev/null; do
|
|
sleep 1
|
|
done
|
|
echo "PotterAPI server běží a odpovídá!"
|
|
|
|
# 6. Krok: Spustí všechny Bruno testy v apiTest
|
|
- name: Run all Bruno API Tests
|
|
run: |
|
|
echo "Spouštím všechny testovací kolekce..."
|
|
|
|
# Získat seznam všech složek v apiTest (kromě node_modules)
|
|
TEST_DIRS=$(find apiTest -mindepth 1 -maxdepth 1 -type d ! -name "node_modules" ! -name ".git" | sort)
|
|
|
|
echo "Nalezené testovací kolekce: ${TEST_DIRS}"
|
|
|
|
# Spustit testy pro každou kolekci
|
|
ALL_PASSED=true
|
|
for dir in $TEST_DIRS; do
|
|
echo "=========================================="
|
|
echo "Spouštím testy pro: $dir"
|
|
echo "=========================================="
|
|
|
|
# Spust testy a zachyt výsledek
|
|
if npx @usebruno/cli run "${dir#apiTest/}" -r; then
|
|
echo "✅ Testy pro $(basename $dir) prošly"
|
|
else
|
|
echo "❌ Testy pro $(basename $dir) selhaly"
|
|
ALL_PASSED=false
|
|
fi
|
|
done
|
|
|
|
echo "=========================================="
|
|
echo "Výsledek všech testů"
|
|
echo "=========================================="
|
|
|
|
if [ "$ALL_PASSED" = true ]; then
|
|
echo "✅ Všechny testy prošly!"
|
|
exit 0
|
|
else
|
|
echo "❌ Některé testy selhaly"
|
|
exit 1
|
|
fi
|
|
|
|
# 7. Krok: Zobrazení server logů při selhání
|
|
- name: Show server logs on failure
|
|
if: failure()
|
|
run: |
|
|
echo "Server logs:"
|
|
cat backends/potter-api/server.log || echo "Log soubor nebyl nalezen"
|