Skip to content

Ca 197 show an error message to the user when he tries to create an object with the same name as another object in the same scope #308

Ca 197 show an error message to the user when he tries to create an object with the same name as another object in the same scope

Ca 197 show an error message to the user when he tries to create an object with the same name as another object in the same scope #308

name: Functional Tests
on:
pull_request:
branches: [main, develop]
types: [opened, synchronize]
workflow_dispatch:
env:
GITHUB_WORKFLOW: github_actions
jobs:
functional-tests:
runs-on: ubuntu-latest
env:
backend-directory: ./backend
working-directory: ./frontend
services:
postgres:
image: postgres:14.1
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_DB: postgres
ports: ["5432:5432"]
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
mailhog:
image: mailhog/mailhog
ports: [
"1025:1025",
"8025:8025"
]
strategy:
max-parallel: 4
matrix:
python-version: ["3.11"]
steps:
- uses: actions/checkout@v4
- name: Set up python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- uses: actions/setup-node@v4
with:
node-version: latest
- name: Install requirements
working-directory: ${{ env.backend-directory }}
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Install dependencies
working-directory: ${{ env.working-directory }}
run: npm ci
- name: Install Playwright Browsers
working-directory: ${{ env.working-directory }}
run: npx playwright install --with-deps
- name: Create frontend environment variables file
working-directory: ${{ env.working-directory }}
run: |
touch .env
echo PUBLIC_BACKEND_API_URL=http://localhost:8000/api >> .env
- name: Create backend environment variables file
working-directory: ${{ env.backend-directory }}
run: |
touch .env
echo DJANGO_SECRET_KEY=${{ secrets.DJANGO_SECRET_KEY }} >> .env
echo [email protected] >> .env
echo DJANGO_SUPERUSER_PASSWORD=1234 >> .env
echo POSTGRES_NAME=postgres >> .env
echo POSTGRES_USER=postgres >> .env
echo POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} >> .env
echo DB_HOST=localhost >> .env
echo CISO_ASSISTANT_SUPERUSER_EMAIL='' >> .env
echo CISO_ASSISTANT_URL=http://localhost:4173 >> .env
echo DEFAULT_FROM_EMAIL='[email protected]' >> .env
echo EMAIL_HOST=localhost >> .env
echo [email protected] >> .env
echo EMAIL_HOST_PASSWORD=password >> .env
echo EMAIL_PORT=1025 >> .env
- name: Run migrations
working-directory: ${{ env.backend-directory }}
run: |
export $(grep -v '^#' .env | xargs)
python manage.py makemigrations
python manage.py migrate
- name: Start test server
working-directory: ${{ env.backend-directory }}
run: |
export $(grep -v '^#' .env | xargs)
python manage.py createsuperuser --noinput
nohup python manage.py runserver &
- name: Run tests
working-directory: ${{ env.working-directory }}
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
with:
name: functional-tests-report
path: |
${{ env.working-directory }}/tests/results/
${{ env.working-directory }}/tests/reports/
retention-days: 5