diff --git a/.env b/.env new file mode 100644 index 000000000..619f471ca --- /dev/null +++ b/.env @@ -0,0 +1,64 @@ +## +## Manually dump .env files in .env.local.php with +## `$ composer symfony:dump-env prod` +## + +## Project environment +APP_ENV=dev + +## Enable debug +APP_DEBUG=true + +## Locale +LOCALE=fr + +## Framework secret +APP_SECRET=ThisTokenIsNotSoSecretChangeIt + +## Symfony/swiftmailer +MAILER_TRANSPORT=smtp +MAILER_HOST=smtp +MAILER_PORT=1025 +MAILER_CRYPT= +MAILER_AUTH= +MAILER_USER= +MAILER_PASSWORD= +MAILER_URL=${MAILER_TRANSPORT}://${MAILER_HOST}:${MAILER_PORT}?encryption=${MAILER_CRYPT}&auth_mode=${MAILER_AUTH}&username=${MAILER_USER}&password=${MAILER_PASSWORD} + +## Notifications +NOTIFICATION_HOST=localhost:8001 +NOTIFICATION_FROM_EMAIL=admin@chill.social +NOTIFICATION_FROM_NAME=Chill + +## Gelf +GELF_HOST=gelf +GELF_PORT=12201 + +## OVH OpenStack Storage User/Role +OS_USERNAME= +OS_PASSWORD= +OS_TENANT_ID= +OS_REGION_NAME=GRA +OS_AUTH_URL=https://auth.cloud.ovh.net/v2.0/ + +## OVH OpenStack Storage Container +ASYNC_UPLOAD_TEMP_URL_KEY= +ASYNC_UPLOAD_TEMP_URL_BASE_PATH= +ASYNC_UPLOAD_TEMP_URL_CONTAINER= + +## Redis Cache +REDIS_HOST=redis +REDIS_PORT=6379 +REDIS_URL=redis://${REDIS_HOST}:${REDIS_PORT} + +## Twilio +TWILIO_SID=~ +TWILIO_SECRET=~ + +## DOCKER IMAGES REGISTRY +#IMAGE_PHP= +#IMAGE_NGINX= + +## DOCKER IMAGES VERSION +#VERSION=test +VERSION=prod diff --git a/.env.test b/.env.test new file mode 100644 index 000000000..c9ff04a55 --- /dev/null +++ b/.env.test @@ -0,0 +1,6 @@ +# variables for .env environement +# those variables suits for gitlab-ci +# Run tests from root to adapt your own environment +KERNEL_CLASS='App\Kernel' +APP_SECRET='$ecretf0rt3st' +DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres?serverVersion=12&charset=utf8 diff --git a/.gitignore b/.gitignore index dd42f244a..5cbbc50f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,20 @@ .composer/* composer.phar +composer.lock + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/config/secrets/prod/prod.decrypt.private.php +/public/bundles/ +/var/ +/vendor/ +/bin/ +###< symfony/framework-bundle ### + +###> phpunit/phpunit ### +/phpunit.xml +.phpunit.result.cache +###< phpunit/phpunit ### diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000..94601773d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,37 @@ +--- +image: registry.gitlab.com/chill-projet/chill-app/php-base-image:7.4 + +# Select what we should cache between builds +cache: + paths: + - tests/app/vendor/ + +before_script: + # add extensions to postgres + - PGPASSWORD=$POSTGRES_PASSWORD psql -U $POSTGRES_USER -h db -c "CREATE EXTENSION IF NOT EXISTS unaccent; CREATE EXTENSION IF NOT EXISTS pg_trgm;" + # Install and run Composer + - curl -sS https://getcomposer.org/installer | php + - php composer.phar install + - php tests/app/bin/console doctrine:migrations:migrate -n + - php tests/app/bin/console doctrine:fixtures:load -n + +# Bring in any services we need http://docs.gitlab.com/ee/ci/docker/using_docker_images.html#what-is-a-service +# See http://docs.gitlab.com/ee/ci/services/README.html for examples. +services: + - name: postgres:12 + alias: db + - name: redis + alias: redis + +# Set any variables we need +variables: + # Configure postgres environment variables (https://hub.docker.com/r/_/postgres/) + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + # fetch the chill-app using git submodules + GIT_SUBMODULE_STRATEGY: recursive + +# Run our tests +test: + script: + - bin/phpunit --colors=never diff --git a/.gitmodules b/.gitmodules index 7bc519c88..560ba7980 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "_exts/sphinx-php"] path = _exts/sphinx-php url = https://github.com/fabpot/sphinx-php.git +[submodule "tests/app"] + path = tests/app + url = https://gitlab.com/Chill-projet/chill-app.git diff --git a/composer.json b/composer.json index 50fa4141a..313d60006 100644 --- a/composer.json +++ b/composer.json @@ -19,10 +19,14 @@ "Chill\\ThirdPartyBundle\\": "src/Bundle/ChillThirdPartyBundle" } }, + "autoload-dev": { + "psr-4": { + "App\\": "tests/app/src/" + } + }, "require": { "champs-libres/async-uploader-bundle": "dev-sf4", "graylog2/gelf-php": "^1.5", - "symfony/flex": "^1.9", "symfony/form": "4.*", "symfony/twig-bundle": "^4.4", "twig/extra-bundle": "^2.12|^3.0", @@ -66,6 +70,17 @@ "symfony/stopwatch": "^5.1", "symfony/web-profiler-bundle": "^5.0", "symfony/var-dumper": "4.*", - "symfony/debug-bundle": "^5.1" + "symfony/debug-bundle": "^5.1", + "symfony/phpunit-bridge": "^5.2" + }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + } + }, + "config": { + "vendor-dir": "tests/app/vendor", + "bin-dir": "bin" } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 000000000..c005618a8 --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + src/Bundle/ChillMainBundle/Tests/ + + + + src/Bundle/ChillPersonBundle/Tests/ + + + + + + + + + + + diff --git a/src/Bundle/ChillMainBundle/Test/PrepareClientTrait.php b/src/Bundle/ChillMainBundle/Test/PrepareClientTrait.php index 741f0373b..0ae7c235a 100644 --- a/src/Bundle/ChillMainBundle/Test/PrepareClientTrait.php +++ b/src/Bundle/ChillMainBundle/Test/PrepareClientTrait.php @@ -34,7 +34,7 @@ trait PrepareClientTrait * @return \Symfony\Component\BrowserKit\Client * @throws \LogicException */ - public function getClient( + public function getClientAuthenticated( $username = 'center a_social', $password = 'password' ) { diff --git a/src/Bundle/ChillMainBundle/Tests/Controller/DefaultControllerTest.php b/src/Bundle/ChillMainBundle/Tests/Controller/DefaultControllerTest.php deleted file mode 100644 index 69e7f4e47..000000000 --- a/src/Bundle/ChillMainBundle/Tests/Controller/DefaultControllerTest.php +++ /dev/null @@ -1,13 +0,0 @@ -