Update PR

This commit is contained in:
DariusIII
2025-10-31 16:26:10 +01:00
parent cafbc221de
commit ef567a3beb
5 changed files with 12 additions and 39193 deletions
+12
View File
@@ -3,6 +3,7 @@ config.php
docker/.zsh_history
docker/composer-auth.json
docker/php-overrides.local.ini
docker-compose.yml
docker-compose.override.yml
.env
install.lock
@@ -58,3 +59,14 @@ node_modules/
.vscode-test
/.phpunit.cache
phpunit.xml.back
# IDE helper files (generated locally)
_ide_helper.php
# Lock files (generated locally, should not be committed)
*-lock
composer.lock
package-lock.json
yarn.lock
pnpm-lock.yaml
-33137
View File
File diff suppressed because it is too large Load Diff
-130
View File
@@ -1,130 +0,0 @@
services:
laravel.test:
build:
context: ./docker/8.4
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.4/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
- '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
environment:
TZ: ${APP_TIMEZONE}
COMPOSER_AUTH: ${COMPOSER_AUTH}
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mariadb
- redis
- manticore
- elasticsearch
mariadb:
image: 'mariadb:latest'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
TZ: ${APP_TIMEZONE}
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_HOST: '%'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
command:
--max_allowed_packet=128M
--group_concat_max_len=16384
--max_connections=200
volumes:
- 'sail-mariadb:/var/lib/mysql'
- './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
networks:
- sail
healthcheck:
test:
- CMD
- mysqladmin
- ping
- '-p${DB_PASSWORD}'
retries: 3
timeout: 5s
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
environment:
TZ: ${APP_TIMEZONE}
volumes:
- 'sail-redis:/data'
networks:
- sail
healthcheck:
test:
- CMD
- redis-cli
- ping
retries: 3
timeout: 5s
mailpit:
image: 'axllent/mailpit:latest'
ports:
- '${FORWARD_MAILPIT_PORT:-1025}:1025'
- '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025'
networks:
- sail
manticore:
image: manticoresearch/manticore:7.4.6
environment:
TZ: ${APP_TIMEZONE}
EXTRA: 1 # Activates extra features
restart: always
ports:
- 9306:9306
- 9308:9308
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
memlock:
soft: -1
hard: -1
volumes:
- 'sail-manticore:/var/lib/manticore/data'
- ./misc/manticoresearch/manticore.conf:/etc/manticoresearch/manticore.conf # uncomment if you use a custom config
networks:
- sail
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.0
environment:
- TZ=${APP_TIMEZONE}
- discovery.type=single-node
- xpack.security.enabled=false
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- 9200:9200
- 9300:9300
volumes:
- sail-elasticsearch:/usr/share/elasticsearch/data
networks:
- sail
networks:
sail:
driver: bridge
volumes:
sail-mariadb:
driver: local
sail-redis:
driver: local
sail-manticore:
driver: local
sail-elasticsearch:
driver: local
-5867
View File
File diff suppressed because it is too large Load Diff
@@ -1,59 +0,0 @@
<?php
namespace Tests\Unit;
use App\Console\Commands\NntmuxResetPostProcessing;
use PHPUnit\Framework\TestCase;
use ReflectionClass;
class NntmuxResetPostProcessingTest extends TestCase
{
private function callNormalize(array $raw): array
{
$cmd = new NntmuxResetPostProcessing;
$ref = new ReflectionClass($cmd);
$method = $ref->getMethod('normalizeCategories');
$method->setAccessible(true);
/** @var array $res */
$res = $method->invoke($cmd, $raw);
return $res;
}
private function callInvalid(array $normalized): array
{
$cmd = new NntmuxResetPostProcessing;
$ref = new ReflectionClass($cmd);
$method = $ref->getMethod('invalidCategories');
$method->setAccessible(true);
/** @var array $res */
$res = $method->invoke($cmd, $normalized);
return $res;
}
public function test_normalize_handles_basic_and_commas_and_repeats_and_case_and_plural(): void
{
$this->assertSame([], $this->callNormalize([]));
$this->assertSame(['movie'], $this->callNormalize(['movie']));
$this->assertSame(['movie'], $this->callNormalize(['Movies']));
$this->assertSame(['movie', 'tv'], $this->callNormalize(['movie,tv']));
$this->assertSame(['movie', 'tv', 'music'], $this->callNormalize(['movie', 'TV', 'musics']));
}
public function test_normalize_strips_value_from_equals_tokens(): void
{
// Simulate Symfony short option mapping: -category=misc => -c ategory=misc => option('category') contains [ 'ategory=misc' ]
$this->assertSame(['misc'], $this->callNormalize(['ategory=misc']));
// Also support explicit key=value inputs like category=music
$this->assertSame(['music'], $this->callNormalize(['category=music']));
}
public function test_invalid_detection_and_all_passthrough(): void
{
$this->assertSame(['foo'], $this->callInvalid(['foo']));
$this->assertSame([], $this->callInvalid(['movie', 'tv']));
$this->assertSame([], $this->callInvalid(['all']));
$this->assertSame(['foo'], $this->callInvalid(['all', 'foo']));
}
}