toBe("'".$trigger.'HYPERLINK("http://evil")'); })->with('formula_triggers'); it('не трогает безопасные значения', function (string $safe) { expect(CsvFormulaGuard::neutralize($safe))->toBe($safe); })->with([ '+7 999 111-11-11 как обычный текст после цифр' => '79991234567', 'кириллица' => 'Окна Москва', 'латиница' => 'comment text', 'число' => '1500.00', 'email' => 'user@example.ru как текст', ]); it('пропускает null и пустую строку без изменений', function () { expect(CsvFormulaGuard::neutralize(null))->toBeNull(); expect(CsvFormulaGuard::neutralize(''))->toBe(''); }); it('не ломает многобайтовую кириллицу в начале', function () { expect(CsvFormulaGuard::neutralize('Москва'))->toBe('Москва'); });