assertIsString($entrypoint); $this->assertStringContainsString( 'runuser -u www-data -- php artisan "$@"', $entrypoint ); $this->assertStringContainsString( 'run_artisan_as_web local-bootstrap:update --no-ansi', $entrypoint ); $this->assertStringContainsString('assert_web_writable', $entrypoint); $this->assertDoesNotMatchRegularExpression('/^\s*php artisan /m', $entrypoint); } public function test_local_worker_healthcheck_and_initialization_use_web_user(): void { $compose = file_get_contents(base_path('docker-compose.local.yml')); $initializer = file_get_contents(base_path('deploy/local-init.sh')); $this->assertIsString($compose); $this->assertStringContainsString( 'test: ["CMD", "jiangling-healthcheck"]', $compose ); $this->assertStringNotContainsString('snapshot_worker:', $compose); $this->assertIsString($initializer); $this->assertStringContainsString( 'exec -T -u www-data app', $initializer ); $this->assertStringContainsString( 'php artisan local-bootstrap:update --no-ansi', $initializer ); $this->assertStringContainsString('docker rm -f jiangling_snapshot_worker', $initializer); $this->assertDoesNotMatchRegularExpression( '/exec -T app\s+(?:\\\\\s*)?php artisan/', $initializer ); } }