From 70f7af0f4e287730661c0f2b19c09e36aacae648 Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Wed, 10 Jun 2026 16:04:07 -0300 Subject: [PATCH 1/8] =?UTF-8?q?[feat]:=20Testes=20antigos=20removidos=20e?= =?UTF-8?q?=20configurado=20Dusk=20e=20Docker=20seguindo=20os=20crit=C3=A9?= =?UTF-8?q?rios=20estabelecidos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.testing.example | 34 ------------ Dockerfile | 60 --------------------- composer.json | 9 ++-- composer.lock | 36 ++++++------- docker-compose.yml | 32 +++++++----- dockerfile | 15 ++++++ tests/Browser/ExampleTest.php | 21 ++++++++ tests/Browser/LoginLogoutTest.php | 55 -------------------- tests/Browser/ReservaBasicaTest.php | 81 ----------------------------- 9 files changed, 78 insertions(+), 265 deletions(-) delete mode 100644 .env.testing.example delete mode 100644 Dockerfile create mode 100644 dockerfile create mode 100644 tests/Browser/ExampleTest.php delete mode 100644 tests/Browser/LoginLogoutTest.php delete mode 100644 tests/Browser/ReservaBasicaTest.php diff --git a/.env.testing.example b/.env.testing.example deleted file mode 100644 index 77e639b..0000000 --- a/.env.testing.example +++ /dev/null @@ -1,34 +0,0 @@ -APP_NAME="Salas Dusk" -APP_ENV=testing -APP_KEY= -APP_DEBUG=true -APP_URL=http://127.0.0.1:47800 -DUSK_DRIVER_URL=http://localhost:9515 - -# DB -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=salas_dusk -DB_USERNAME=admin -DB_PASSWORD=admin - -REPLICADO_FAKE=1 - -# Filas -QUEUE_CONNECTION=sync - -# Drivers de Performance para Testes -# Usamos 'array' ou 'file' para garantir que os testes não poluam o cache real -CACHE_DRIVER=array -FILESYSTEM_DISK=local - -SESSION_DRIVER=file -SESSION_LIFETIME=120 - -# Configurações de Email (Não envia emails reais durante o teste) -MAIL_MAILER=log - -# Dusk -DUSK_START_MAXIMIZED=true -DUSK_HEADLESS_DISABLED=true \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 8d7218b..0000000 --- a/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -FROM php:8.3-apache - -# packages -RUN sed -i 's|main|main non-free|' /etc/apt/sources.list.d/debian.sources && apt-get update && apt-get install -y \ - unixodbc \ - unixodbc-dev \ - freetds-bin \ - freetds-dev \ - libicu-dev \ - git \ - unzip \ - libzip-dev \ - libpng-dev \ - libonig-dev \ - libxml2-dev \ - libjpeg-dev \ - libpng-dev \ - libfreetype6-dev \ - curl - -# cleanup -RUN apt-get clean && rm -rf /var/lib/apt/lists/* - -# composer -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer - -# php libs -RUN docker-php-ext-install \ - intl \ - pdo_mysql \ - soap \ - zip \ - mbstring \ - bcmath \ - pdo_dblib - -# gd -RUN docker-php-ext-configure gd --with-freetype --with-jpeg && \ - docker-php-ext-install gd - -# php memory -ENV PHP_MEMORY_LIMIT=512M -ENV PHP_UPLOAD_LIMIT=512M -RUN { \ - echo 'memory_limit=${PHP_MEMORY_LIMIT}'; \ - echo 'upload_max_filesize=${PHP_UPLOAD_LIMIT}'; \ - echo 'post_max_size=${PHP_UPLOAD_LIMIT}'; \ - } > "${PHP_INI_DIR}/conf.d/upload.ini" - -# apache -RUN a2enmod rewrite -RUN sed -i 's|/var/www/html|/var/www/html/public|' /etc/apache2/sites-available/000-default.conf -RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf - -# composer -USER www-data -COPY --chown=www-data . . -RUN composer install --optimize-autoloader --no-interaction - -CMD ["./serve.sh"] \ No newline at end of file diff --git a/composer.json b/composer.json index 1433571..9b3020e 100644 --- a/composer.json +++ b/composer.json @@ -24,12 +24,12 @@ "uspdev/senhaunica-socialite": "^4.3" }, "require-dev": { - "spatie/laravel-ignition": "^2.4", "fakerphp/faker": "^1.9.1", - "laravel/dusk": "^8.0", + "laravel/dusk": "^8.6", "mockery/mockery": "^1.4.2", "nunomaduro/collision": "^8.1", - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.0", + "spatie/laravel-ignition": "^2.4" }, "config": { "optimize-autoloader": true, @@ -62,8 +62,7 @@ "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi", - "@php artisan vendor:publish --provider=\"Uspdev\\UspTheme\\ServiceProvider\" --tag=assets --force", - "@php artisan dusk:chrome-driver --detect" + "@php artisan vendor:publish --provider=\"Uspdev\\UspTheme\\ServiceProvider\" --tag=assets --force" ], "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" diff --git a/composer.lock b/composer.lock index a07adff..ba52af5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "77597b61a35a75e5b94b1a093c141ed0", + "content-hash": "b45f8dc17fbfd78f367bbee49b45179a", "packages": [ { "name": "brick/math", @@ -8566,39 +8566,39 @@ }, { "name": "laravel/dusk", - "version": "v8.3.3", + "version": "v8.6.0", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "077d448cd993a08f97bfccf0ea3d6478b3908f7e" + "reference": "e7fd48762c6a82ad2cd311db07587aa2a97ce143" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/077d448cd993a08f97bfccf0ea3d6478b3908f7e", - "reference": "077d448cd993a08f97bfccf0ea3d6478b3908f7e", + "url": "https://api.github.com/repos/laravel/dusk/zipball/e7fd48762c6a82ad2cd311db07587aa2a97ce143", + "reference": "e7fd48762c6a82ad2cd311db07587aa2a97ce143", "shasum": "" }, "require": { "ext-json": "*", "ext-zip": "*", "guzzlehttp/guzzle": "^7.5", - "illuminate/console": "^10.0|^11.0|^12.0", - "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/console": "^10.0|^11.0|^12.0|^13.0", + "illuminate/support": "^10.0|^11.0|^12.0|^13.0", "php": "^8.1", "php-webdriver/webdriver": "^1.15.2", - "symfony/console": "^6.2|^7.0", - "symfony/finder": "^6.2|^7.0", - "symfony/process": "^6.2|^7.0", + "symfony/console": "^6.2|^7.0|^8.0", + "symfony/finder": "^6.2|^7.0|^8.0", + "symfony/process": "^6.2|^7.0|^8.0", "vlucas/phpdotenv": "^5.2" }, "require-dev": { - "laravel/framework": "^10.0|^11.0|^12.0", + "laravel/framework": "^10.0|^11.0|^12.0|^13.0", "mockery/mockery": "^1.6", - "orchestra/testbench-core": "^8.19|^9.0|^10.0", + "orchestra/testbench-core": "^8.19|^9.17|^10.8|^11.0", "phpstan/phpstan": "^1.10", "phpunit/phpunit": "^10.1|^11.0|^12.0.1", "psy/psysh": "^0.11.12|^0.12", - "symfony/yaml": "^6.2|^7.0" + "symfony/yaml": "^6.2|^7.0|^8.0" }, "suggest": { "ext-pcntl": "Used to gracefully terminate Dusk when tests are running." @@ -8634,9 +8634,9 @@ ], "support": { "issues": "https://github.com/laravel/dusk/issues", - "source": "https://github.com/laravel/dusk/tree/v8.3.3" + "source": "https://github.com/laravel/dusk/tree/v8.6.0" }, - "time": "2025-06-10T13:59:27+00:00" + "time": "2026-04-15T14:50:40+00:00" }, { "name": "mockery/mockery", @@ -10955,12 +10955,12 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.2" }, - "platform-dev": [], - "plugin-api-version": "2.6.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" } diff --git a/docker-compose.yml b/docker-compose.yml index ed09f76..5ee9866 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,18 +1,18 @@ services: salas: - build: . + image: salas:latest container_name: salas ports: - "8000:80" depends_on: - mariadb - - selenium networks: - salas-network volumes: - ./:/var/www/html - - storage_data:/var/www/html/storage - - cache_data:/var/www/html/bootstrap/cache + environment: + HOME: /tmp + user: "${UID:-1000}:${GID:-1000}" mariadb: image: mariadb:11 @@ -28,21 +28,29 @@ services: networks: - salas-network - # http://localhost:7900 senha: secret selenium: - image: selenium/standalone-chrome:latest + image: selenium/standalone-chrome container_name: salas_selenium ports: - - "4444:4444" # WebDriver - - "7900:7900" # VNC (ver browser) - shm_size: 2gb + - "7900:7900" # VNC (pra ver o browser rodando) networks: - salas-network + shm_size: 2gb + + senhaunica-faker: + image: uspdev/senhaunica-faker + container_name: salas_senhaunica-faker + ports: + - "3141:3141" + environment: + - APP_URL=http://auth.local:3141 + networks: + salas-network: + aliases: + - auth.local networks: salas-network: volumes: - mariadb_data: - storage_data: - cache_data: + mariadb_data: \ No newline at end of file diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..0753906 --- /dev/null +++ b/dockerfile @@ -0,0 +1,15 @@ +FROM uspdev/uspdev-php-apache:8.3 + +RUN sed -i 's|/var/www/html|/var/www/html/public|' \ + /etc/apache2/sites-available/000-default.conf + +USER www-data + +COPY --chown=www-data . . + +RUN composer install \ + --no-dev \ + --optimize-autoloader \ + --no-interaction + +CMD ["apache2-foreground"] \ No newline at end of file diff --git a/tests/Browser/ExampleTest.php b/tests/Browser/ExampleTest.php new file mode 100644 index 0000000..2d451fc --- /dev/null +++ b/tests/Browser/ExampleTest.php @@ -0,0 +1,21 @@ +browse(function (Browser $browser) { + $browser->visit('/') + ->assertSee('Laravel'); + }); + } +} diff --git a/tests/Browser/LoginLogoutTest.php b/tests/Browser/LoginLogoutTest.php deleted file mode 100644 index b809b28..0000000 --- a/tests/Browser/LoginLogoutTest.php +++ /dev/null @@ -1,55 +0,0 @@ -setupAdminAndUser(); - } - - public function testLoginLogout() - { - $this->browse(function (Browser $browser) { - // Login com usuário comum - $browser->visit('/loginlocal') - ->typeSlowly('email', $this->commonUser->email) - ->typeSlowly('password', 'password') - ->press('Entrar') - ->pause(2000) - ->assertDontSee('Administração') - ->click('.login_logout_link') - ->pause(2000); - - // Login com usuário admin - $browser->visit('/loginlocal') - ->typeSlowly('email', $this->adminUser->email) - ->typeSlowly('password', 'password') - ->press('Entrar') - ->pause(2000) - ->assertSee('Administração') - ->click('.login_logout_link') - ->pause(2000); - }); - } - -} diff --git a/tests/Browser/ReservaBasicaTest.php b/tests/Browser/ReservaBasicaTest.php deleted file mode 100644 index 7885f3b..0000000 --- a/tests/Browser/ReservaBasicaTest.php +++ /dev/null @@ -1,81 +0,0 @@ -setupAdminAndUser(); // cria usuários $this->commonUser e $this->adminUser - } - - /*Teste para criar uma reserva básica: - - 1. Criar uma Categoria (Prédio); - - 2. Criar Sala dentro de uma categoria; - - 3. Cadastrar Reserva contendo a sala; - */ - public function testReservaBasica(): void - { - //1. Login como admin e criação de uma categoria (prédio) - $this->browse(function (Browser $browser) { - $browser->visit('/loginlocal') - ->typeSlowly('email', $this->adminUser->email, 30) - ->typeSlowly('password', 'password', 30) - ->press('Entrar') - ->pause(1000) - ->click('#navbarDropdowniclassfafausercogariahiddentrueiAdministrao') //menu - ->pause(1250) - ->click('a[href="categorias/create"]') - ->pause(1250) - ->typeSlowly('nome','Prédio da Administração', 100) - ->pause(2000) - ->press('Enviar') - ->pause(2000); - - /*Buscando no banco de dados a categoria que acabou de ser criada.*/ - $categoria_id = \App\Models\Categoria::select('id')->latest()->first(); - - //2. Após a criação da categoria, cria-se uma sala com ela. - $browser->click('#navbarDropdowniclassfafausercogariahiddentrueiAdministrao') //menu - ->pause(1850) - ->click('a[href="salas/create"]') - ->pause(1250) - ->typeSlowly('nome','Sala de Informática Teste', 100) - ->typeSlowly('capacidade','123', 150) - ->select('categoria_id', $categoria_id->id) //Selecionando o ID da cat. criada - ->pause(2300) - ->press('Enviar') - ->pause(2300); - - $sala_id = \App\Models\Sala::select('id')->latest()->first(); - - //3. Por fim, cria-se uma reserva inserindo a sala que desejamos. - $browser->click('a[href="/reservas/create"]') - ->pause(1500) - ->typeSlowly('nome','Reunião DUSK STI', 100) - ->typeSlowly('data',now()->format('d/m/Y'), 50) - ->typeSlowly('horario_inicio','8:00', 50) - ->typeSlowly('horario_fim','10:00', 50) - ->pause(1000) - ->select('sala_id',$sala_id->id) - ->pause(2000) - ->clickAtXPath('//body') //clica fora do "calendário" - ->pause(1000) - ->radio('rep_bool','Não') - ->pause(2000) - ->press('Enviar') - ->pause(5000); - }); - } -} From deeb5407c065f8c84eec7fe628575efdd722f006 Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Wed, 17 Jun 2026 11:02:24 -0300 Subject: [PATCH 2/8] [fix]: .env.example, .env.dusk.local e teste simples modificado para o respectivo nome do app --- .env.dusk.local | 147 ++++++++++++++++++++++++++++++++++ .env.example | 23 ++++-- .gitignore | 1 - tests/Browser/ExampleTest.php | 2 +- 4 files changed, 165 insertions(+), 8 deletions(-) create mode 100644 .env.dusk.local diff --git a/.env.dusk.local b/.env.dusk.local new file mode 100644 index 0000000..bf854b4 --- /dev/null +++ b/.env.dusk.local @@ -0,0 +1,147 @@ +APP_NAME=Salas +APP_ENV=testing +APP_KEY=base64:lHBknai/UJH+F4XbApbMRMoy6DXid6VGHrbdTH4lTe0= +APP_DEBUG=true +APP_URL=http://salas + +LOG_CHANNEL=stack +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=salas_mariadb +DB_PORT=3306 +DB_DATABASE=salas +DB_USERNAME=salas +DB_PASSWORD=salas + +# Em produção,depende de Supervisor instalado para processar a fila. +# Em ambiente dev, pode subir um processo com +# php artisan queue:listen +# ou usar +# QUEUE_CONNECTION=sync +QUEUE_CONNECTION=database + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +SESSION_DRIVER=file +SESSION_LIFETIME=120 +SESSION_DOMAIN=localhost + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=smtp.mailtrap.io +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS=null +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +SENHAUNICA_KEY= +SENHAUNICA_SECRET= +SENHAUNICA_CALLBACK_ID= + +REPLICADO_HOST= +REPLICADO_PORT= +REPLICADO_DATABASE= +REPLICADO_USERNAME= +REPLICADO_PASSWORD= +REPLICADO_CODUNDCLG= +REPLICADO_SYBASE= + +SENHAUNICA_ADMINS= + +# SENHAUNICA-SOCIALITE ###################################### +# https://github.com/uspdev/senhaunica-socialite + +# URL do servidor oauth no ambiente de dev (default=no) +#SENHAUNICA_DEV="https://dev.uspdigital.usp.br/wsusuario/oauth" + +# URL do servidor oauth para uso com senhaunica-faker +#SENHAUNICA_DEV="http://127.0.0.1:3141/wsusuario/oauth" + +# Desabilite para não salvar o retorno do oauth em storage/app/debug/oauth/ (default=true) +#SENHAUNICA_DEBUG= + +# AS CONFIGURAÇÕES A SEGUIR são relevantes se permission=true + +# Esses usuários terão privilégios especiais +#SENHAUNICA_ADMINS=11111,22222,33333 +#SENHAUNICA_GERENTES=4444,5555,6666 + +# Se os logins forem limitados a usuários cadastrados (onlyLocalUsers=true), +# pode ser útil cadastrá-los aqui. +#SENHAUNICA_USERS=777,888 + +# Se true, os privilégios especiais serão revogados ao remover da lista (default=false) +#SENHAUNICA_DROP_PERMISSIONS= + +# Código da unidade para identificar os logins próprios ou de outras unidades +SENHAUNICA_CODIGO_UNIDADE= + +USP_THEME_SKIN=fflch + +# LARAVEL TOOLS ######################################### +# https://github.com/uspdev/laravel-tools + +# Se sua aplicação está atrás de um proxy e se comunica com o proxy por http mas o proxy +# se comunica com o usuário por https, vc deve forçar o https no laravel (default = false). +#LARAVEL_TOOLS_FORCAR_HTTPS=false + +# Ativa mensagens de debug (default = app.debug) +#LARAVEL_TOOLS_DEBUG= + +# Campos extras ao solicitar reserva +# Se estiver preenchido, eles serão exibidos ao solicitar reserva, e serão de preenchimento obrigatório +# Colocar os campos entre aspas e separados por vírgula, por exemplo: RESERVA_CAMPOS_EXTRAS="Campo 1,Campo 2,Campo 3" +RESERVA_CAMPOS_EXTRAS= + +# se true, todo e-mail enviado será copiado para o endereço remetente do próprio sistema +# Colocar true para fazer essa cópia; colocar false ou deixar em branco ou comentado ou ausente para não fazer essa cópia +MAIL_COPIAR_REMETENTE= + +# Configura o calendário da sala de modo a exibir horários não de 0 a 24hs, mas menos horários +# Se não estiver preenchido, o calendário exibirá das 0 às 24hs, como sempre foi até a criação destes campos +# O formato de preenchimento é "hh:mm" (com aspas e dois dígitos para hora e dois dígitos para minuto, separados por :) +CALENDARIO_HORA_INICIAL= +CALENDARIO_HORA_FINAL= + +# O php.ini tem de permitir esse tamanho também +# upload_max_filesize e post_max_size +# Definir o parâmetro em MB, o padrão aqui é 16MB (se não estiver definido valor algum) +UPLOAD_MAX_FILESIZE=16 + +DUSK_DRIVER_URL='http://salas_selenium:4444/wd/hub' +DUSK_START_MAXIMIZED=true +DUSK_HEADLESS_DISABLED=true + +SENHAUNICA_KEY=faker +SENHAUNICA_SECRET=faker +SENHAUNICA_CALLBACK_ID=1 +SENHAUNICA_ADMINS=111111 +REPLICADO_FAKE=1 +SENHAUNICA_DEV="http://auth.local:3141/wsusuario/oauth" + +REPLICADO_HOST=cloud.fflch.usp.br +REPLICADO_PORT=5005 +REPLICADO_DATABASE=fflch +REPLICADO_USERNAME=fflchdev +REPLICADO_PASSWORD=srw8FzUHm1sG3SYjXNuGX3Urs +REPLICADO_CODUNDCLG=8 +REPLICADO_SYBASE=1 \ No newline at end of file diff --git a/.env.example b/.env.example index c611ed7..9922ad3 100644 --- a/.env.example +++ b/.env.example @@ -1,18 +1,18 @@ -APP_NAME=Laravel +APP_NAME=Salas APP_ENV=local APP_KEY= APP_DEBUG=true -APP_URL=http://127.0.0.1:8000 +APP_URL=http://localhost:8000 LOG_CHANNEL=stack LOG_LEVEL=debug DB_CONNECTION=mysql -DB_HOST=127.0.0.1 +DB_HOST=salas_mariadb DB_PORT=3306 -DB_DATABASE=laravel -DB_USERNAME=root -DB_PASSWORD= +DB_DATABASE=salas +DB_USERNAME=salas +DB_PASSWORD=salas # Em produção,depende de Supervisor instalado para processar a fila. # Em ambiente dev, pode subir um processo com @@ -125,3 +125,14 @@ CALENDARIO_HORA_FINAL= # upload_max_filesize e post_max_size # Definir o parâmetro em MB, o padrão aqui é 16MB (se não estiver definido valor algum) UPLOAD_MAX_FILESIZE=16 + +DUSK_DRIVER_URL='http://selenium:4444/wd/hub' +DUSK_START_MAXIMIZED=true +DUSK_HEADLESS_DISABLED=true + +SENHAUNICA_KEY=faker +SENHAUNICA_SECRET=faker +SENHAUNICA_CALLBACK_ID=1 +SENHAUNICA_ADMINS=111111 +REPLICADO_FAKE=1 +SENHAUNICA_DEV="http://auth.local:3141/wsusuario/oauth" diff --git a/.gitignore b/.gitignore index 12d2935..c7f3bfa 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ .env .env.backup .env.testing -.env.dusk.local .phpunit.result.cache Homestead.json Homestead.yaml diff --git a/tests/Browser/ExampleTest.php b/tests/Browser/ExampleTest.php index 2d451fc..3b86499 100644 --- a/tests/Browser/ExampleTest.php +++ b/tests/Browser/ExampleTest.php @@ -15,7 +15,7 @@ public function test_basic_example(): void { $this->browse(function (Browser $browser) { $browser->visit('/') - ->assertSee('Laravel'); + ->assertSee('Salas'); }); } } From da80932dfb1d042c5e1b555ef64a13690c60dfd6 Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Wed, 17 Jun 2026 11:32:16 -0300 Subject: [PATCH 3/8] [fix]: APP_KEY removida do .env.dusk.local --- .env.dusk.local | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.dusk.local b/.env.dusk.local index bf854b4..3ce834b 100644 --- a/.env.dusk.local +++ b/.env.dusk.local @@ -1,6 +1,6 @@ APP_NAME=Salas APP_ENV=testing -APP_KEY=base64:lHBknai/UJH+F4XbApbMRMoy6DXid6VGHrbdTH4lTe0= +APP_KEY= APP_DEBUG=true APP_URL=http://salas From f231fcd6f5cb7f1a25f92f49059bad019edf8172 Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Thu, 18 Jun 2026 10:57:37 -0300 Subject: [PATCH 4/8] [fix]: Docker e Dusk renomeados --- dockerfile => Dockerfile | 0 tests/Browser/{ExampleTest.php => IndexTest.php} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename dockerfile => Dockerfile (100%) rename tests/Browser/{ExampleTest.php => IndexTest.php} (100%) diff --git a/dockerfile b/Dockerfile similarity index 100% rename from dockerfile rename to Dockerfile diff --git a/tests/Browser/ExampleTest.php b/tests/Browser/IndexTest.php similarity index 100% rename from tests/Browser/ExampleTest.php rename to tests/Browser/IndexTest.php From 771ae17dc5a057c3c4d696d5288acec0565d778b Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Thu, 18 Jun 2026 11:01:40 -0300 Subject: [PATCH 5/8] =?UTF-8?q?[fix]:=20corrigindo=20erro=20de=20renomea?= =?UTF-8?q?=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/Browser/IndexTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Browser/IndexTest.php b/tests/Browser/IndexTest.php index 3b86499..63b1619 100644 --- a/tests/Browser/IndexTest.php +++ b/tests/Browser/IndexTest.php @@ -6,7 +6,7 @@ use Laravel\Dusk\Browser; use Tests\DuskTestCase; -class ExampleTest extends DuskTestCase +class IndexTest extends DuskTestCase { /** * A basic browser test example. From 5934227f1b98977bb9a92e054a8f4b580d7876ba Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Wed, 24 Jun 2026 11:19:06 -0300 Subject: [PATCH 6/8] [fix]: Corrigindo .env --- .env.dusk.local | 147 ------------------------------------------------ .gitignore | 1 + 2 files changed, 1 insertion(+), 147 deletions(-) delete mode 100644 .env.dusk.local diff --git a/.env.dusk.local b/.env.dusk.local deleted file mode 100644 index 3ce834b..0000000 --- a/.env.dusk.local +++ /dev/null @@ -1,147 +0,0 @@ -APP_NAME=Salas -APP_ENV=testing -APP_KEY= -APP_DEBUG=true -APP_URL=http://salas - -LOG_CHANNEL=stack -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=salas_mariadb -DB_PORT=3306 -DB_DATABASE=salas -DB_USERNAME=salas -DB_PASSWORD=salas - -# Em produção,depende de Supervisor instalado para processar a fila. -# Em ambiente dev, pode subir um processo com -# php artisan queue:listen -# ou usar -# QUEUE_CONNECTION=sync -QUEUE_CONNECTION=database - -BROADCAST_DRIVER=log -CACHE_DRIVER=file -SESSION_DRIVER=file -SESSION_LIFETIME=120 -SESSION_DOMAIN=localhost - -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=smtp -MAIL_HOST=smtp.mailtrap.io -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS=null -MAIL_FROM_NAME="${APP_NAME}" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= - -PUSHER_APP_ID= -PUSHER_APP_KEY= -PUSHER_APP_SECRET= -PUSHER_APP_CLUSTER=mt1 - -MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" -MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" - -SENHAUNICA_KEY= -SENHAUNICA_SECRET= -SENHAUNICA_CALLBACK_ID= - -REPLICADO_HOST= -REPLICADO_PORT= -REPLICADO_DATABASE= -REPLICADO_USERNAME= -REPLICADO_PASSWORD= -REPLICADO_CODUNDCLG= -REPLICADO_SYBASE= - -SENHAUNICA_ADMINS= - -# SENHAUNICA-SOCIALITE ###################################### -# https://github.com/uspdev/senhaunica-socialite - -# URL do servidor oauth no ambiente de dev (default=no) -#SENHAUNICA_DEV="https://dev.uspdigital.usp.br/wsusuario/oauth" - -# URL do servidor oauth para uso com senhaunica-faker -#SENHAUNICA_DEV="http://127.0.0.1:3141/wsusuario/oauth" - -# Desabilite para não salvar o retorno do oauth em storage/app/debug/oauth/ (default=true) -#SENHAUNICA_DEBUG= - -# AS CONFIGURAÇÕES A SEGUIR são relevantes se permission=true - -# Esses usuários terão privilégios especiais -#SENHAUNICA_ADMINS=11111,22222,33333 -#SENHAUNICA_GERENTES=4444,5555,6666 - -# Se os logins forem limitados a usuários cadastrados (onlyLocalUsers=true), -# pode ser útil cadastrá-los aqui. -#SENHAUNICA_USERS=777,888 - -# Se true, os privilégios especiais serão revogados ao remover da lista (default=false) -#SENHAUNICA_DROP_PERMISSIONS= - -# Código da unidade para identificar os logins próprios ou de outras unidades -SENHAUNICA_CODIGO_UNIDADE= - -USP_THEME_SKIN=fflch - -# LARAVEL TOOLS ######################################### -# https://github.com/uspdev/laravel-tools - -# Se sua aplicação está atrás de um proxy e se comunica com o proxy por http mas o proxy -# se comunica com o usuário por https, vc deve forçar o https no laravel (default = false). -#LARAVEL_TOOLS_FORCAR_HTTPS=false - -# Ativa mensagens de debug (default = app.debug) -#LARAVEL_TOOLS_DEBUG= - -# Campos extras ao solicitar reserva -# Se estiver preenchido, eles serão exibidos ao solicitar reserva, e serão de preenchimento obrigatório -# Colocar os campos entre aspas e separados por vírgula, por exemplo: RESERVA_CAMPOS_EXTRAS="Campo 1,Campo 2,Campo 3" -RESERVA_CAMPOS_EXTRAS= - -# se true, todo e-mail enviado será copiado para o endereço remetente do próprio sistema -# Colocar true para fazer essa cópia; colocar false ou deixar em branco ou comentado ou ausente para não fazer essa cópia -MAIL_COPIAR_REMETENTE= - -# Configura o calendário da sala de modo a exibir horários não de 0 a 24hs, mas menos horários -# Se não estiver preenchido, o calendário exibirá das 0 às 24hs, como sempre foi até a criação destes campos -# O formato de preenchimento é "hh:mm" (com aspas e dois dígitos para hora e dois dígitos para minuto, separados por :) -CALENDARIO_HORA_INICIAL= -CALENDARIO_HORA_FINAL= - -# O php.ini tem de permitir esse tamanho também -# upload_max_filesize e post_max_size -# Definir o parâmetro em MB, o padrão aqui é 16MB (se não estiver definido valor algum) -UPLOAD_MAX_FILESIZE=16 - -DUSK_DRIVER_URL='http://salas_selenium:4444/wd/hub' -DUSK_START_MAXIMIZED=true -DUSK_HEADLESS_DISABLED=true - -SENHAUNICA_KEY=faker -SENHAUNICA_SECRET=faker -SENHAUNICA_CALLBACK_ID=1 -SENHAUNICA_ADMINS=111111 -REPLICADO_FAKE=1 -SENHAUNICA_DEV="http://auth.local:3141/wsusuario/oauth" - -REPLICADO_HOST=cloud.fflch.usp.br -REPLICADO_PORT=5005 -REPLICADO_DATABASE=fflch -REPLICADO_USERNAME=fflchdev -REPLICADO_PASSWORD=srw8FzUHm1sG3SYjXNuGX3Urs -REPLICADO_CODUNDCLG=8 -REPLICADO_SYBASE=1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index c7f3bfa..b65ac32 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /storage/*.key /vendor .env +.env.dusk.local .env.backup .env.testing .phpunit.result.cache From a9ce91516489aa7a85bd173341ae580764c206a9 Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Wed, 24 Jun 2026 11:26:53 -0300 Subject: [PATCH 7/8] =?UTF-8?q?[fix]:=20Workflow=20do=20actions=20modifica?= =?UTF-8?q?do=20com=20as=20diretrizes=20para=20o=20.env.example=20e=20coma?= =?UTF-8?q?ndos=20de=20modifica=C3=A7=C3=A3o=20do=20.env?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/dusk.yml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/.github/workflows/dusk.yml b/.github/workflows/dusk.yml index dd31f1d..14f5219 100644 --- a/.github/workflows/dusk.yml +++ b/.github/workflows/dusk.yml @@ -32,20 +32,35 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.3 + php-version: 8.4 extensions: mbstring, dom, pdo, mysql coverage: none - name: Install Composer dependencies run: composer install --no-progress --prefer-dist --optimize-autoloader - - name: Remove Dusk visual variables - usadas no modo assistido + # 1. Copia o .env.example direto para .env + - name: Copy env from example + run: cp .env.example .env + + # 2. Remove as variáveis visuais do Dusk caso existam no .env + - name: Remove Dusk visual variables run: | - sed -i '/DUSK_START_MAXIMIZED/d' .env.testing.example || true - sed -i '/DUSK_HEADLESS_DISABLED/d' .env.testing.example || true + sed -i '/DUSK_START_MAXIMIZED/d' .env || true + sed -i '/DUSK_HEADLESS_DISABLED/d' .env || true - - name: Copy testing env - run: cp .env.testing.example .env + # 3. Injeta as configurações do Dusk e do Banco de Dados no .env gerado + - name: Configure .env file for testing + run: | + printf "\n" >> .env + echo "APP_URL=http://127.0.0.1:47800" >> .env + echo "DUSK_DRIVER_URL=http://localhost:9515" >> .env + echo "DB_CONNECTION=mysql" >> .env + echo "DB_HOST=127.0.0.1" >> .env + echo "DB_PORT=3306" >> .env + echo "DB_DATABASE=db" >> .env + echo "DB_USERNAME=admin" >> .env + echo "DB_PASSWORD=admin" >> .env - name: Generate APP_KEY run: php artisan key:generate From 3d69625432b1541453f0882c1d2860129da51d92 Mon Sep 17 00:00:00 2001 From: Guilherme Frias Date: Wed, 24 Jun 2026 11:48:19 -0300 Subject: [PATCH 8/8] [test]: teste no db do workflow --- .github/workflows/dusk.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dusk.yml b/.github/workflows/dusk.yml index 14f5219..71f9355 100644 --- a/.github/workflows/dusk.yml +++ b/.github/workflows/dusk.yml @@ -12,7 +12,7 @@ jobs: mariadb: image: mariadb:10.11 env: - MARIADB_DATABASE: salas_dusk + MARIADB_DATABASE: db MARIADB_ROOT_PASSWORD: admin MARIADB_USER: admin MARIADB_PASSWORD: admin