<?php

use Illuminate\Process\PendingProcess;
use Illuminate\Support\Facades\Process;

it('shows change messages inline in pijul credit output', function () {
    Process::fake(function (PendingProcess $process) {
        return match ($process->command) {
            ['pijul', 'credit', 'README.md'] => Process::result(<<<'OUTPUT'
                ABC123
                A regular line
                OUTPUT),
            ['pijul', 'change', 'ABC123'] => Process::result("message = \"feat(pijul-qol): inline context\"\n"),
            default => Process::result('', 'Unexpected command.', 1),
        };
    });

    $this->artisan('pijul:credit-with-messages', ['file' => 'README.md'])
        ->expectsOutputToContain('ABC123 (feat(pijul-qol): inline context)')
        ->expectsOutputToContain('A regular line')
        ->assertExitCode(0);
});