<?php

declare(strict_types=1);

use App\Services\Reports\Formatters\CsvFormatter;

// F-CSV (wide): центральный писатель отчётов должен нейтрализовать formula-
// инъекцию во всех типах отчётов (Managers/Sources/Billing/Deals), не только
// в DealsExportProvider. Числовые ячейки (ведущий «-» = минус) не трогаются.

it('нейтрализует формулы в ячейках, числа не трогает', function () {
    $out = (new CsvFormatter)->format(
        ['Контакт', 'Сумма'],
        [
            ['=HYPERLINK("http://evil")', '-100.00'],
            ['@SUM(1+1)', 1500],
            ['+вредная', '0.00'],
        ],
    );

    // формулы нейтрализованы апострофом
    expect($out)->toContain("'=HYPERLINK(");
    expect($out)->toContain("'@SUM(1+1)");
    expect($out)->toContain("'+вредная");
    // до фикса ячейка обрамлялась бы как "=HYPERLINK( без апострофа
    expect($out)->not->toContain('"=HYPERLINK(');
    // числа НЕ тронуты (ведущий минус — легитимный знак)
    expect($out)->toContain('-100.00');
    expect($out)->not->toContain("'-100.00");
    expect($out)->toContain('1500');
});
