<?php

namespace Tests\Unit\Services\Whatsapp;

use App\Services\EmailService;
use App\Services\Whatsapp\WhatsappInviteEmailService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Mockery;
use Tests\TestCase;

class WhatsappInviteEmailServiceTest extends TestCase
{
    use RefreshDatabase;

    public function test_send_requires_recipients(): void
    {
        $service = new WhatsappInviteEmailService(Mockery::mock(EmailService::class));
        $result = $service->send([]);

        $this->assertFalse($result['ok']);
    }

    public function test_send_dispatches_email(): void
    {
        $email = Mockery::mock(EmailService::class);
        $email->shouldReceive('send')->once()->andReturn(true);

        $service = new WhatsappInviteEmailService($email);
        $result = $service->send([
            'to_emails' => ['parent@example.com'],
            'sections' => [
                [
                    'class_section_id' => 1,
                    'class_section_name' => 'Class A',
                    'invite_link' => 'https://chat.whatsapp.com/test',
                ],
            ],
        ]);

        $this->assertTrue($result['ok']);
        $this->assertSame(1, $result['recipients']);
    }
}
