7, 'ctx', 'Warnung', $warnings)); self::assertSame([], $warnings); } public function testAFailingStepIsLoggedAndBecomesAWarning(): void { $log = (string) tempnam(sys_get_temp_dir(), 'lit-mcp-log'); $previous = ini_set('error_log', $log); $warnings = ['alt']; try { $result = FollowUp::run( static function (): void { throw new RuntimeException('hook kaputt'); }, 'lit/content-create after_save', 'Warnung', $warnings ); } finally { ini_set('error_log', (string) $previous); } self::assertNull($result); self::assertSame(['alt', 'Warnung'], $warnings); self::assertStringContainsString('lit/content-create after_save', (string) file_get_contents($log)); self::assertStringContainsString('hook kaputt', (string) file_get_contents($log)); unlink($log); } }